From fad15ea5f5c5f636881977d03e2dfb26a270c2e6 Mon Sep 17 00:00:00 2001 From: stevenhowes <38082088+stevenhowes@users.noreply.github.com> Date: Sun, 30 May 2021 20:51:03 +0100 Subject: [PATCH] Event scheduling --- !TheEsc/!RunImage,ff8 | Bin 25056 -> 25360 bytes !TheEsc/Makefile,fe1 | 4 +-- !TheEsc/Tools,fe1 | 22 +++++++++----- !TheEsc/c/CTheEscape | 4 +-- !TheEsc/c/Mission2 | 68 ++++++++++++++++++++++++++++++++++++++---- !TheEsc/compile.php | 22 ++++++++++++++ !TheEsc/m2_evact,ffd | Bin 384 -> 396 bytes !TheEsc/m2_evt,ffd | Bin 252 -> 280 bytes !TheEsc/m2_txt | 5 ++++ 9 files changed, 108 insertions(+), 17 deletions(-) diff --git a/!TheEsc/!RunImage,ff8 b/!TheEsc/!RunImage,ff8 index d79afeb2a0bee2ac22d108fb322ef8f5c75b8058..c40d50987422eda73a054c5096e7b73a7cdb65d5 100644 GIT binary patch delta 4370 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 0) + { + if(tick > ScheduledEvents[i].Ticks) + { + // Trigger the event + game2_triggerevent(ScheduledEvents[i].Event); + // Clear it + ScheduledEvents[i].Event = -1; + ScheduledEvents[i].Ticks = -1; + } + } + } } int game2_tick() @@ -703,6 +759,8 @@ int game2_tick() } } + game2_triggerscheduledevents(); + game2_tick_input(); if((TilePlayer.facedirection & (1 << DIRECTION_N)) && (TilePlayer.facedirection & (1 << DIRECTION_E))) //NE diff --git a/!TheEsc/compile.php b/!TheEsc/compile.php index 0e2f4c0..0027a7b 100644 --- a/!TheEsc/compile.php +++ b/!TheEsc/compile.php @@ -96,6 +96,28 @@ $eventactions[] = array("Event"=>$inevent,"Action"=>3,"ActionValue"=>255,"ActionTarget"=>$target); } break; + case "Schedule": + if($inevent < 0) + { + echo " Invalid outside event\n"; + } + else + { + $csv = str_getcsv($split[1]); + + $target = -1; + foreach($events as $eventid=>$event) + { + if($event['Name'] == $csv[0]) + $target = $eventid; + } + + if($target < 0) + echo " Unknown target: " . $csv[0] . "\n"; + else + $eventactions[] = array("Event"=>$inevent,"Action"=>4,"ActionValue"=>$target,"ActionTarget"=>$csv[1]); + } + break; default: echo " Unknown command: " . $split[0] . "\n"; } diff --git a/!TheEsc/m2_evact,ffd b/!TheEsc/m2_evact,ffd index 67c0c0b2e4814fe4a5c653b864564337e34df76e..0efc666c53c16a3aadd827b1df688ae991074bf4 100644 GIT binary patch delta 34 icmZo*?qQZ>00Krv28RDY0AjOnGBBI~(wrN4ix~lb+6OuS delta 22 acmeBSZeZqR00Krv28RDYz_3xWm=ORuaRyuf diff --git a/!TheEsc/m2_evt,ffd b/!TheEsc/m2_evt,ffd index 9cdd3346d620ff665ca87cd6cc93fb767845e626..6c13b73e2bd6ac677c0de625ebaecf3a672fc0e0 100644 GIT binary patch delta 35 YcmeyvID=`z9~q~j%+xdnRPY}P0KMi7AOHXW delta 6 NcmbQi^oMc69{>rj10(