From 49df787e2c2faa2621b5490c6e88c86a4b7a813f Mon Sep 17 00:00:00 2001 From: Haru Date: Wed, 21 Jan 2015 12:54:13 +0100 Subject: Reduced quest db memory usage by about 900kB Signed-off-by: Haru --- src/map/clif.c | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) (limited to 'src/map/clif.c') diff --git a/src/map/clif.c b/src/map/clif.c index 268066d1a..291b5cb46 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -15829,7 +15829,8 @@ void clif_parse_PartyTick(int fd, struct map_session_data* sd) /// Sends list of all quest states (ZC_ALL_QUEST_LIST). /// 02b1 .W .L { .L .B }*num -void clif_quest_send_list(struct map_session_data *sd) { +void clif_quest_send_list(struct map_session_data *sd) +{ int fd = sd->fd; int i; #if PACKETVER >= 20141022 @@ -15846,7 +15847,7 @@ void clif_quest_send_list(struct map_session_data *sd) { WFIFOW(fd, 2) = len; WFIFOL(fd, 4) = sd->avail_quests; - for( i = 0; i < sd->avail_quests; i++ ) { + for (i = 0; i < sd->avail_quests; i++) { #if PACKETVER >= 20141022 struct quest_db *qi = quest->db(sd->quest_log[i].quest_id); #endif @@ -15855,7 +15856,7 @@ void clif_quest_send_list(struct map_session_data *sd) { #if PACKETVER >= 20141022 WFIFOL(fd, i*info_len+13) = sd->quest_log[i].time - qi->time; WFIFOL(fd, i*info_len+17) = sd->quest_log[i].time; - WFIFOW(fd, i*info_len+21) = qi->num_objectives; + WFIFOW(fd, i*info_len+21) = qi->objectives_count; #endif } @@ -15865,7 +15866,8 @@ void clif_quest_send_list(struct map_session_data *sd) { /// Sends list of all quest missions (ZC_ALL_QUEST_MISSION). /// 02b2 .W .L { .L .L .L .W { .L .W .24B }*3 }*num -void clif_quest_send_mission(struct map_session_data *sd) { +void clif_quest_send_mission(struct map_session_data *sd) +{ int fd = sd->fd; int i, j; int len = sd->avail_quests*104+8; @@ -15876,17 +15878,17 @@ void clif_quest_send_mission(struct map_session_data *sd) { WFIFOW(fd, 2) = len; WFIFOL(fd, 4) = sd->avail_quests; - for( i = 0; i < sd->avail_quests; i++ ) { + for (i = 0; i < sd->avail_quests; i++) { struct quest_db *qi = quest->db(sd->quest_log[i].quest_id); WFIFOL(fd, i*104+8) = sd->quest_log[i].quest_id; WFIFOL(fd, i*104+12) = sd->quest_log[i].time - qi->time; WFIFOL(fd, i*104+16) = sd->quest_log[i].time; - WFIFOW(fd, i*104+20) = qi->num_objectives; + WFIFOW(fd, i*104+20) = qi->objectives_count; - for( j = 0 ; j < qi->num_objectives; j++ ) { - WFIFOL(fd, i*104+22+j*30) = qi->mob[j]; + for (j = 0 ; j < qi->objectives_count; j++) { + WFIFOL(fd, i*104+22+j*30) = qi->objectives[j].mob; WFIFOW(fd, i*104+26+j*30) = sd->quest_log[i].count[j]; - monster = mob->db(qi->mob[j]); + monster = mob->db(qi->objectives[j].mob); memcpy(WFIFOP(fd, i*104+28+j*30), monster->jname, NAME_LENGTH); } } @@ -15897,7 +15899,8 @@ void clif_quest_send_mission(struct map_session_data *sd) { /// Notification about a new quest (ZC_ADD_QUEST). /// 02b3 .L .B .L .L .W { .L .W .24B }*3 -void clif_quest_add(struct map_session_data *sd, struct quest *qd) { +void clif_quest_add(struct map_session_data *sd, struct quest *qd) +{ int fd = sd->fd; int i; struct quest_db *qi = quest->db(qd->quest_id); @@ -15908,13 +15911,13 @@ void clif_quest_add(struct map_session_data *sd, struct quest *qd) { WFIFOB(fd, 6) = qd->state; WFIFOB(fd, 7) = qd->time - qi->time; WFIFOL(fd, 11) = qd->time; - WFIFOW(fd, 15) = qi->num_objectives; + WFIFOW(fd, 15) = qi->objectives_count; - for( i = 0; i < qi->num_objectives; i++ ) { + for (i = 0; i < qi->objectives_count; i++) { struct mob_db *monster; - WFIFOL(fd, i*30+17) = qi->mob[i]; + WFIFOL(fd, i*30+17) = qi->objectives[i].mob; WFIFOW(fd, i*30+21) = qd->count[i]; - monster = mob->db(qi->mob[i]); + monster = mob->db(qi->objectives[i].count); memcpy(WFIFOP(fd, i*30+23), monster->jname, NAME_LENGTH); } @@ -15936,21 +15939,22 @@ void clif_quest_delete(struct map_session_data *sd, int quest_id) { /// Notification of an update to the hunting mission counter (ZC_UPDATE_MISSION_HUNT). /// 02b5 .W .W { .L .L .W .W }*3 -void clif_quest_update_objective(struct map_session_data *sd, struct quest *qd) { +void clif_quest_update_objective(struct map_session_data *sd, struct quest *qd) +{ int fd = sd->fd; int i; struct quest_db *qi = quest->db(qd->quest_id); - int len = qi->num_objectives*12+6; + int len = qi->objectives_count*12+6; WFIFOHEAD(fd, len); WFIFOW(fd, 0) = 0x2b5; WFIFOW(fd, 2) = len; - WFIFOW(fd, 4) = qi->num_objectives; + WFIFOW(fd, 4) = qi->objectives_count; - for( i = 0; i < qi->num_objectives; i++ ) { + for (i = 0; i < qi->objectives_count; i++) { WFIFOL(fd, i*12+6) = qd->quest_id; - WFIFOL(fd, i*12+10) = qi->mob[i]; - WFIFOW(fd, i*12+14) = qi->count[i]; + WFIFOL(fd, i*12+10) = qi->objectives[i].mob; + WFIFOW(fd, i*12+14) = qi->objectives[i].count; WFIFOW(fd, i*12+16) = qd->count[i]; } -- cgit v1.2.3-60-g2f50