diff options
Diffstat (limited to 'src/char/int_elemental.c')
-rw-r--r-- | src/char/int_elemental.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/char/int_elemental.c b/src/char/int_elemental.c index 8d868bc06..70275725d 100644 --- a/src/char/int_elemental.c +++ b/src/char/int_elemental.c @@ -155,10 +155,15 @@ void mapif_elemental_send(int fd, struct s_elemental *ele, unsigned char flag) { WFIFOSET(fd,size); } -void mapif_parse_elemental_create(int fd, struct s_elemental *ele) +void mapif_parse_elemental_create(int fd, const struct s_elemental *ele) { - bool result = mapif->elemental_create(ele); - mapif->elemental_send(fd, ele, result); + struct s_elemental ele_; + bool result; + + memcpy(&ele_, ele, sizeof(ele_)); + + result = mapif->elemental_create(&ele_); + mapif->elemental_send(fd, &ele_, result); } void mapif_parse_elemental_load(int fd, int ele_id, int char_id) { @@ -186,7 +191,8 @@ void mapif_elemental_saved(int fd, unsigned char flag) { WFIFOSET(fd,3); } -void mapif_parse_elemental_save(int fd, struct s_elemental* ele) { +void mapif_parse_elemental_save(int fd, const struct s_elemental *ele) +{ bool result = mapif->elemental_save(ele); mapif->elemental_saved(fd, result); } |