ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/socket/request.C
(Generate patch)

Comparing deliantra/server/socket/request.C (file contents):
Revision 1.20 by root, Thu Sep 14 23:13:49 2006 UTC vs.
Revision 1.23 by root, Tue Sep 19 10:35:22 2006 UTC

258 if (!strncmp (buf, "spatial ", 8)) 258 if (!strncmp (buf, "spatial ", 8))
259 { 259 {
260 buf += 8; 260 buf += 8;
261 261
262 // initial map and its origin 262 // initial map and its origin
263 mapstruct *map = pl->ob->map; 263 maptile *map = pl->ob->map;
264 sint16 dx, dy; 264 sint16 dx, dy;
265 int mapx = pl->socket.mapx / 2 - pl->ob->x; 265 int mapx = pl->socket.mapx / 2 - pl->ob->x;
266 int mapy = pl->socket.mapy / 2 - pl->ob->y; 266 int mapy = pl->socket.mapy / 2 - pl->ob->y;
267 int max_distance = 8; // limit maximum path length to something generous 267 int max_distance = 8; // limit maximum path length to something generous
268 268
1131 AddIfShort (pl->last_stats.Wis, pl->ob->stats.Wis, CS_STAT_WIS); 1131 AddIfShort (pl->last_stats.Wis, pl->ob->stats.Wis, CS_STAT_WIS);
1132 AddIfShort (pl->last_stats.Dex, pl->ob->stats.Dex, CS_STAT_DEX); 1132 AddIfShort (pl->last_stats.Dex, pl->ob->stats.Dex, CS_STAT_DEX);
1133 AddIfShort (pl->last_stats.Con, pl->ob->stats.Con, CS_STAT_CON); 1133 AddIfShort (pl->last_stats.Con, pl->ob->stats.Con, CS_STAT_CON);
1134 AddIfShort (pl->last_stats.Cha, pl->ob->stats.Cha, CS_STAT_CHA); 1134 AddIfShort (pl->last_stats.Cha, pl->ob->stats.Cha, CS_STAT_CHA);
1135 } 1135 }
1136
1136 if (pl->socket.exp64) 1137 if (pl->socket.exp64)
1137 { 1138 {
1138 uint8 s; 1139 uint8 s;
1139 1140
1140 for (s = 0; s < NUM_SKILLS; s++) 1141 for (s = 0; s < NUM_SKILLS; s++)
1150 SockList_AddInt64 (&sl, pl->last_skill_ob[s]->stats.exp); 1151 SockList_AddInt64 (&sl, pl->last_skill_ob[s]->stats.exp);
1151 pl->last_skill_exp[s] = pl->last_skill_ob[s]->stats.exp; 1152 pl->last_skill_exp[s] = pl->last_skill_ob[s]->stats.exp;
1152 } 1153 }
1153 } 1154 }
1154 } 1155 }
1156
1155 if (pl->socket.exp64) 1157 if (pl->socket.exp64)
1156 {
1157 AddIfInt64 (pl->last_stats.exp, pl->ob->stats.exp, CS_STAT_EXP64); 1158 { AddIfInt64 (pl->last_stats.exp, pl->ob->stats.exp, CS_STAT_EXP64) }
1158 }
1159 else 1159 else
1160 {
1161 AddIfInt (pl->last_stats.exp, (int) pl->ob->stats.exp, CS_STAT_EXP); 1160 { AddIfInt (pl->last_stats.exp, (int) pl->ob->stats.exp, CS_STAT_EXP) }
1162 } 1161
1163 AddIfShort (pl->last_level, (char) pl->ob->level, CS_STAT_LEVEL); 1162 AddIfShort (pl->last_level, (char) pl->ob->level, CS_STAT_LEVEL);
1164 AddIfShort (pl->last_stats.wc, pl->ob->stats.wc, CS_STAT_WC); 1163 AddIfShort (pl->last_stats.wc, pl->ob->stats.wc, CS_STAT_WC);
1165 AddIfShort (pl->last_stats.ac, pl->ob->stats.ac, CS_STAT_AC); 1164 AddIfShort (pl->last_stats.ac, pl->ob->stats.ac, CS_STAT_AC);
1166 AddIfShort (pl->last_stats.dam, pl->ob->stats.dam, CS_STAT_DAM); 1165 AddIfShort (pl->last_stats.dam, pl->ob->stats.dam, CS_STAT_DAM);
1167 AddIfFloat (pl->last_speed, pl->ob->speed, CS_STAT_SPEED); 1166 AddIfFloat (pl->last_speed, pl->ob->speed, CS_STAT_SPEED);
1168 AddIfShort (pl->last_stats.food, pl->ob->stats.food, CS_STAT_FOOD); 1167 AddIfShort (pl->last_stats.food, pl->ob->stats.food, CS_STAT_FOOD);
1169 AddIfFloat (pl->last_weapon_sp, pl->weapon_sp, CS_STAT_WEAP_SP); 1168 AddIfFloat (pl->last_weapon_sp, pl->weapon_sp, CS_STAT_WEAP_SP);
1170 AddIfInt (pl->last_weight_limit, (sint32) weight_limit[pl->ob->stats.Str], CS_STAT_WEIGHT_LIM); 1169 AddIfInt (pl->last_weight_limit, (sint32) weight_limit[pl->ob->stats.Str], CS_STAT_WEIGHT_LIM);
1171 flags = 0; 1170 flags = 0;
1171
1172 if (pl->fire_on) 1172 if (pl->fire_on)
1173 flags |= SF_FIREON; 1173 flags |= SF_FIREON;
1174
1174 if (pl->run_on) 1175 if (pl->run_on)
1175 flags |= SF_RUNON; 1176 flags |= SF_RUNON;
1176 1177
1177 AddIfShort (pl->last_flags, flags, CS_STAT_FLAGS); 1178 AddIfShort (pl->last_flags, flags, CS_STAT_FLAGS);
1179
1178 if (pl->socket.sc_version < 1025) 1180 if (pl->socket.sc_version < 1025)
1179 {
1180 AddIfShort (pl->last_resist[ATNR_PHYSICAL], pl->ob->resist[ATNR_PHYSICAL], CS_STAT_ARMOUR); 1181 { AddIfShort (pl->last_resist[ATNR_PHYSICAL], pl->ob->resist[ATNR_PHYSICAL], CS_STAT_ARMOUR) }
1181 }
1182 else 1182 else
1183 { 1183 {
1184 int i; 1184 int i;
1185 1185
1186 for (i = 0; i < NROFATTACKS; i++) 1186 for (i = 0; i < NROFATTACKS; i++)
1187 { 1187 {
1188 /* Skip ones we won't send */ 1188 /* Skip ones we won't send */
1189 if (atnr_cs_stat[i] == -1) 1189 if (atnr_cs_stat[i] == -1)
1190 continue; 1190 continue;
1191
1191 AddIfShort (pl->last_resist[i], pl->ob->resist[i], (char) atnr_cs_stat[i]); 1192 AddIfShort (pl->last_resist[i], pl->ob->resist[i], (char) atnr_cs_stat[i]);
1192 } 1193 }
1193 } 1194 }
1195
1194 if (pl->socket.monitor_spells) 1196 if (pl->socket.monitor_spells)
1195 { 1197 {
1196 AddIfInt (pl->last_path_attuned, pl->ob->path_attuned, CS_STAT_SPELL_ATTUNE); 1198 AddIfInt (pl->last_path_attuned, pl->ob->path_attuned, CS_STAT_SPELL_ATTUNE);
1197 AddIfInt (pl->last_path_repelled, pl->ob->path_repelled, CS_STAT_SPELL_REPEL); 1199 AddIfInt (pl->last_path_repelled, pl->ob->path_repelled, CS_STAT_SPELL_REPEL);
1198 AddIfInt (pl->last_path_denied, pl->ob->path_denied, CS_STAT_SPELL_DENY); 1200 AddIfInt (pl->last_path_denied, pl->ob->path_denied, CS_STAT_SPELL_DENY);
1199 } 1201 }
1202
1200 rangetostring (pl->ob, buf); /* we want use the new fire & run system in new client */ 1203 rangetostring (pl->ob, buf); /* we want use the new fire & run system in new client */
1201 AddIfString (pl->socket.stats.range, buf, CS_STAT_RANGE); 1204 AddIfString (pl->socket.stats.range, buf, CS_STAT_RANGE);
1202 set_title (pl->ob, buf); 1205 set_title (pl->ob, buf);
1203 AddIfString (pl->socket.stats.title, buf, CS_STAT_TITLE); 1206 AddIfString (pl->socket.stats.title, buf, CS_STAT_TITLE);
1204 1207
1208#ifdef ESRV_DEBUG 1211#ifdef ESRV_DEBUG
1209 LOG (llevDebug, "Sending stats command, %d bytes long.\n", sl.len); 1212 LOG (llevDebug, "Sending stats command, %d bytes long.\n", sl.len);
1210#endif 1213#endif
1211 Send_With_Handling (&pl->socket, &sl); 1214 Send_With_Handling (&pl->socket, &sl);
1212 } 1215 }
1216
1213 free (sl.buf); 1217 free (sl.buf);
1214} 1218}
1215
1216 1219
1217/** 1220/**
1218 * Tells the client that here is a player it should start using. 1221 * Tells the client that here is a player it should start using.
1219 */ 1222 */
1220void 1223void
1238 1241
1239 Send_With_Handling (&pl->socket, &sl); 1242 Send_With_Handling (&pl->socket, &sl);
1240 free (sl.buf); 1243 free (sl.buf);
1241 SET_FLAG (pl->ob, FLAG_CLIENT_SENT); 1244 SET_FLAG (pl->ob, FLAG_CLIENT_SENT);
1242} 1245}
1243
1244 1246
1245/** 1247/**
1246 * Need to send an animation sequence to the client. 1248 * Need to send an animation sequence to the client.
1247 * We will send appropriate face commands to the client if we haven't 1249 * We will send appropriate face commands to the client if we haven't
1248 * sent them the face yet (this can become quite costly in terms of 1250 * sent them the face yet (this can become quite costly in terms of
1541 * the case, it seems to make more sense to have these layer values 1543 * the case, it seems to make more sense to have these layer values
1542 * actually match. 1544 * actually match.
1543 */ 1545 */
1544 1546
1545static int 1547static int
1546update_space (SockList * sl, NewSocket * ns, mapstruct *mp, int mx, int my, int sx, int sy, int layer) 1548update_space (SockList * sl, NewSocket * ns, maptile *mp, int mx, int my, int sx, int sy, int layer)
1547{ 1549{
1548 object *ob, *head; 1550 object *ob, *head;
1549 uint16 face_num; 1551 uint16 face_num;
1550 int bx, by, i; 1552 int bx, by, i;
1551 1553
1765 * top layer (this matches what the GET_MAP_FACE and GET_MAP_FACE_OBJ 1767 * top layer (this matches what the GET_MAP_FACE and GET_MAP_FACE_OBJ
1766 * take. 1768 * take.
1767 */ 1769 */
1768 1770
1769static inline int 1771static inline int
1770update_smooth (SockList * sl, NewSocket * ns, mapstruct *mp, int mx, int my, int sx, int sy, int layer) 1772update_smooth (SockList * sl, NewSocket * ns, maptile *mp, int mx, int my, int sx, int sy, int layer)
1771{ 1773{
1772 object *ob; 1774 object *ob;
1773 int smoothlevel; /* old face_num; */ 1775 int smoothlevel; /* old face_num; */
1774 1776
1775 ob = GET_MAP_FACE_OBJ (mp, mx, my, layer); 1777 ob = GET_MAP_FACE_OBJ (mp, mx, my, layer);
1853 SockList esl; /*For extended Map info */ 1855 SockList esl; /*For extended Map info */
1854 uint16 mask, emask; 1856 uint16 mask, emask;
1855 uint8 eentrysize; 1857 uint8 eentrysize;
1856 uint16 ewhatstart, ewhatflag; 1858 uint16 ewhatstart, ewhatflag;
1857 uint8 extendedinfos; 1859 uint8 extendedinfos;
1858 mapstruct *m; 1860 maptile *m;
1859 1861
1860 NewSocket & socket = pl->contr->socket; 1862 NewSocket & socket = pl->contr->socket;
1861 1863
1862 check_map_change (pl->contr); 1864 check_map_change (pl->contr);
1863 1865
2241 sint16 ax, ay, nx, ny; /* ax and ay goes from 0 to max-size of arrays */ 2243 sint16 ax, ay, nx, ny; /* ax and ay goes from 0 to max-size of arrays */
2242 New_Face *face, *floor; 2244 New_Face *face, *floor;
2243 New_Face *floor2; 2245 New_Face *floor2;
2244 int d, mflags; 2246 int d, mflags;
2245 struct Map newmap; 2247 struct Map newmap;
2246 mapstruct *m, *pm; 2248 maptile *m, *pm;
2247 2249
2248 if (pl->type != PLAYER) 2250 if (pl->type != PLAYER)
2249 { 2251 {
2250 LOG (llevError, "draw_client_map called with non player/non eric-server\n"); 2252 LOG (llevError, "draw_client_map called with non player/non eric-server\n");
2251 return; 2253 return;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines