… | |
… | |
244 | pl->refcnt_chk (); |
244 | pl->refcnt_chk (); |
245 | |
245 | |
246 | if (!pl->ob || !pl->ns || !pl->ob->active) |
246 | if (!pl->ob || !pl->ns || !pl->ob->active) |
247 | continue; |
247 | continue; |
248 | |
248 | |
249 | if (pl->ob->speed_left > 0.f && pl->ns) |
|
|
250 | if (handle_newcs_player (pl->ob)) |
249 | if (handle_newcs_player (pl->ob)) |
251 | flag = 1; |
250 | flag = 1; |
252 | |
251 | } |
253 | /* If the player is not actively playing, don't make a |
252 | } |
254 | * backup save - nothing to save anyway. Plus, the |
|
|
255 | * map may not longer be valid. This can happen when the |
|
|
256 | * player quits - they exist for purposes of tracking on the map, |
|
|
257 | * but don't actually reside on any actual map. |
|
|
258 | */ |
|
|
259 | if (QUERY_FLAG (pl->ob, FLAG_REMOVED)) |
|
|
260 | continue; |
|
|
261 | } /* end of for loop for all the players */ |
|
|
262 | } /* for flag */ |
|
|
263 | |
253 | |
264 | for_all_players (pl) |
254 | for_all_players (pl) |
265 | { |
255 | { |
266 | object *ob = pl->ob; |
256 | object *ob = pl->ob; |
267 | |
257 | |
268 | if (!ob || !pl->ns || !ob->active) |
258 | if (!ob || !pl->ns || !ob->active) |
269 | continue; |
259 | continue; |
270 | |
260 | |
271 | // process_events might steal us one speed slot, so adjust accordingly |
261 | // process_events might steal us one speed slot for the animation, so adjust accordingly |
272 | if (ob->speed_left > 0.f) |
262 | if (ob->speed_left > 0.f) |
273 | ++ob->speed_left; |
263 | ++ob->speed_left; |
274 | |
264 | |
275 | do_some_living (ob); |
265 | do_some_living (ob); |
276 | } |
266 | } |
… | |
… | |
280 | process_players2 () |
270 | process_players2 () |
281 | { |
271 | { |
282 | /* Then check if any players should use weapon-speed instead of speed */ |
272 | /* Then check if any players should use weapon-speed instead of speed */ |
283 | for_all_players (pl) |
273 | for_all_players (pl) |
284 | { |
274 | { |
285 | if (pl->has_hit) |
|
|
286 | { |
|
|
287 | pl->ob->speed_left = min (pl->weapon_sp, pl->ob->speed_left + pl->weapon_sp); |
275 | pl->weapon_sp_left = min (pl->weapon_sp, pl->weapon_sp_left + pl->weapon_sp); |
288 | |
|
|
289 | if (pl->ob->speed_left > 0.f) |
|
|
290 | pl->has_hit = 0; |
|
|
291 | } |
|
|
292 | else |
|
|
293 | pl->ob->speed_left = min (pl->ob->speed, pl->ob->speed_left + pl->ob->speed); |
276 | pl->ob->speed_left = min (pl->ob->speed, pl->ob->speed_left + pl->ob->speed); |
294 | } |
277 | } |
295 | } |
278 | } |
296 | |
279 | |
297 | void |
280 | void |
298 | process_events () |
281 | process_events () |