MCPcopy Create free account
hub / github.com/BZFlag-Dev/bzflag / process

Method process

plugins/mapchange/mapchange.cpp:357–451  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

355}
356
357void MapChangeEventHandler::process(bz_EventData* eventData) {
358 if (!eventData) {
359 return;
360 }
361
362 switch (eventData->eventType) {
363 case bz_ePlayerJoinEvent:
364 case bz_ePlayerPartEvent: {
365 bz_PlayerJoinPartEventData_V1* joinPart = (bz_PlayerJoinPartEventData_V1*)eventData;
366
367 if (joinPart->eventType == bz_ePlayerJoinEvent) {
368 if (startTime < 0) {
369 startTime = joinPart->eventTime;
370 }
371 }
372 else if (endCond == eNoPlayers) {
373 if (!anyPlayers()) {
374 nextMap();
375 }
376 }
377 }
378 break;
379
380 case bz_ePlayerDieEvent: {
381 if (endCond != eMaxKillScore) {
382 break;
383 }
384
385 bz_PlayerDieEventData_V1* die = (bz_PlayerDieEventData_V1*)eventData;
386
387 if (bz_getPlayerWins(die->killerID) >= scoreCapLimit) {
388 nextMap();
389 }
390 }
391 break;
392
393 case bz_eCaptureEvent: {
394 if (endCond != eMaxCapScore) {
395 break;
396 }
397
398 bz_CTFCaptureEventData_V1* cap = (bz_CTFCaptureEventData_V1*)eventData;
399
400 if (bz_getTeamWins(cap->teamCapping) >= scoreCapLimit) {
401 nextMap();
402 }
403 }
404 break;
405
406 case bz_eTickEvent: {
407 if (endCond != eTimedGame && startTime >= 0) {
408 break;
409 }
410
411 bz_TickEventData_V1* tick = (bz_TickEventData_V1*)eventData;
412
413 double timeDelta = tick->eventTime - startTime;
414 if (timeDelta >= timeLimit) {

Callers

nothing calls this directly

Calls 6

anyPlayersFunction · 0.85
nextMapFunction · 0.85
bz_getPlayerWinsFunction · 0.85
bz_getTeamWinsFunction · 0.85
c_strMethod · 0.80
replace_allFunction · 0.50

Tested by

no test coverage detected