diff --git a/Makefile b/Makefile index 508c200..427d97f 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ CXXFLAGS ?= -O2 -Wall -g CXXFLAGS += `pkg-config --cflags sdl2 SDL2_image SDL2_mixer` LIBS = `pkg-config --libs sdl2 SDL2_image SDL2_mixer` -OBJS = alien.o audio.o bullet.o cargo.o collectable.o colors.o engine.o explosion.o game.o gfx.o intermission.o loadSave.o messages.o misc.o missions.o player.o renderer.o resources.o screen.o script.o ship.o shop.o Starfighter.o title.o weapons.o window.o +OBJS = alien.o audio.o bullet.o cargo.o collectable.o colors.o engine.o event.o explosion.o game.o gfx.o intermission.o loadSave.o messages.o misc.o missions.o player.o renderer.o resources.o screen.o script.o ship.o shop.o Starfighter.o title.o weapons.o window.o VERSION = 1.4.1-dev PROG = starfighter diff --git a/data/script11.txt b/data/script11.txt deleted file mode 100644 index 8f8ffdb..0000000 --- a/data/script11.txt +++ /dev/null @@ -1,61 +0,0 @@ -5 -FACE_PHOEBE --1 -0 -Ummm... something about this doesn't look right! They should be offering more resistance than this! - --8 -FACE_PHOEBE --1 -0 -DAMMIT! It's a trap! Come on, Chris, we have to leave NOW!! - --9 --1 -16 -128 -@none@ - --13 -FACE_SID --1 -0 -Chris, wh... - --15 -FACE_KLINE --1 -0 -So finally I meet the man who has been causing us so much trouble! - --20 -FACE_CHRIS --1 -0 -I see you've jammed up my warp drive. Who are you? - --25 -FACE_KLINE --1 -0 -I am Kline Kethlan. And I am here to put to a stop to your worthless little crusade! - --31 -FACE_CHRIS --1 -0 -Kline Kethlan, huh? You sure sound confident. - --36 -FACE_KLINE --1 -0 -Nowhere to run, nowhere to hide, and no one to help you! This will certainly be interesting... - --42 --1 -15 --20 -@none@ - -0 diff --git a/data/script13.txt b/data/script13.txt deleted file mode 100644 index 192584c..0000000 --- a/data/script13.txt +++ /dev/null @@ -1,17 +0,0 @@ -2 -FACE_URSULA --1 -0 -Unidentified craft sighted. Will proceed to destroy all targets. - -8 -FACE_CHRIS --1 -0 -Looks like she's got one of those homing missile launchers too! Any advice, Phoebe? - -14 -FACE_PHOEBE --1 -0 -Just try and dodge them! diff --git a/data/script16.txt b/data/script16.txt deleted file mode 100644 index 6861e25..0000000 --- a/data/script16.txt +++ /dev/null @@ -1,61 +0,0 @@ -1 -FACE_CHRIS --1 -0 -Nice ship! - -7 -FACE_KRASS --1 -0 -Thanks, boy. Made it myself! - -60 -FACE_KRASS --1 -0 -Hey, boy, we've got company! Looks like your friends didn't do a very good job after all! - -60 --1 -10 --1048576 -@none@ - -90 --1 -11 --1048576 -@none@ - -93 -FACE_KRASS --1 -0 -Keep those things off my back or it'll cost you extra!!! - -120 --1 -12 --1048576 -@none@ - -140 -FACE_PHOEBE -16 --1048576 -Hey!! Did we miss anything exciting? - -140 --1 -17 --1048576 -@none@ - -150 -FACE_KRASS -19 -128 -I've earned my fee. I'll see you around, boy! - -0 diff --git a/data/script17.txt b/data/script17.txt deleted file mode 100644 index 812e242..0000000 --- a/data/script17.txt +++ /dev/null @@ -1,8 +0,0 @@ -90 -FACE_SID -14 -128 -DAMMIT! It's getting away! We've got to stop it! - - -0 diff --git a/data/script22.txt b/data/script22.txt deleted file mode 100644 index be940a2..0000000 --- a/data/script22.txt +++ /dev/null @@ -1,37 +0,0 @@ -45 -FACE_SID --1 -0 -Chris! Another two of those ray cannons just arrived in your sector! - -45 --1 -11 --1048576 -@none@ - -45 --1 -12 --1048576 -@none@ - -90 -FACE_SID --1 -0 -Two more! - -90 --1 -13 --1048576 -@none@ - -90 --1 -14 --1048576 -@none@ - -0 diff --git a/data/script23.txt b/data/script23.txt deleted file mode 100644 index ef85896..0000000 --- a/data/script23.txt +++ /dev/null @@ -1,55 +0,0 @@ -1 --1 -10 --1048576 -@none@ - -2 -FACE_URSULA --1 -0 -It's a trap! My God! It's Tyler! - -8 -FACE_KRASS --1 -0 -I'm a mercenary, what do you expect?! WEAPCO hired me to do a job, just like you have been doing. - -14 -FACE_CHRIS --1 -0 -Good point. It would be foolish to expect anything else. - -15 --1 -11 --1048576 -@none@ - -20 -FACE_KRASS --1 -0 -Now if you'll assist me in dying quickly, I have a cheque to earn, boy... - -25 -FACE_CHRIS --1 -0 -I have a name, you know. Do you remember it? - -45 --1 -12 --1048576 -@none@ - -45 --1 -13 --1048576 -@none@ - -0 diff --git a/data/script25.txt b/data/script25.txt deleted file mode 100644 index 0604dc7..0000000 --- a/data/script25.txt +++ /dev/null @@ -1,13 +0,0 @@ -2 -FACE_KLINE --1 -0 -That's far enough, Bainfield. You've been lucky so far, but your luck is about to run out! - -8 -FACE_CHRIS --1 -0 -Yeah, right! Like I'd lose to you after coming this far! - -0 diff --git a/data/script26.txt b/data/script26.txt deleted file mode 100644 index 96374ee..0000000 --- a/data/script26.txt +++ /dev/null @@ -1,11 +0,0 @@ -2 -FACE_CHRIS --1 -0 -WEAPCO is finished, Kethlan! You have nowhere to run, nowhere to hide, and no one to help you. - -8 -FACE_KLINE --1 -0 -You underestimate me, Bainfield. diff --git a/data/script5.txt b/data/script5.txt deleted file mode 100644 index 66d43e5..0000000 --- a/data/script5.txt +++ /dev/null @@ -1,37 +0,0 @@ -2 -FACE_SID --1 -0 -You should try and destroy some of the frigate's weaponary, it'll help! - -120 -FACE_SID --1 -0 -Chris, get a move on! The frigate is almost in range! - -150 -FACE_SID --1 -0 -The frigate is charging its cannon! - -170 -FACE_SID --1 -0 -Chris, HURRY!!! - -180 --1 -14 -132 -@none@ - -180 -FACE_SID --1 -0 -oh my god... - -0 diff --git a/data/script7.txt b/data/script7.txt deleted file mode 100644 index 9c15b97..0000000 --- a/data/script7.txt +++ /dev/null @@ -1,7 +0,0 @@ -2 -FACE_PHOEBE --1 -0 -Hey, over here! Destroy this tug so I can break free! - -0 diff --git a/data/script8.txt b/data/script8.txt deleted file mode 100644 index df7e490..0000000 --- a/data/script8.txt +++ /dev/null @@ -1,61 +0,0 @@ -2 -FACE_CREW --1 -0 -Thank God! Please, help us! If they destroy this ship... - -6 -FACE_CHRIS --1 -0 -How long do you need? - -10 -FACE_CREW --1 -0 -Just a few minutes! - -60 -FACE_CREW -19 --16 -Alright! We've got the weapons working again! Now to look at the engines... - -80 -FACE_CREW -19 -16 -DAMN! The guns are offline again! What you guys doing back there?! - -100 -FACE_CREW -19 -2048 -Chris, HELP!! We've lost all system power! We're a sitting duck out here! - -120 -FACE_CREW --1 -0 -Just a little longer... - -140 -FACE_CREW -19 --2048 -Okay! We've fixed that one. We think we've found the problem with the engines too... - -177 -FACE_CREW --1 -0 -Engines fixed! Let's move! - -180 --1 -19 -132 -@none@ - -0 diff --git a/src/Starfighter.h b/src/Starfighter.h index a5e6b5d..7ce1d8b 100644 --- a/src/Starfighter.h +++ b/src/Starfighter.h @@ -42,6 +42,7 @@ along with this program. If not, see . #include "collectable.h" #include "colors.h" #include "engine.h" +#include "event.h" #include "explosion.h" #include "game.h" #include "gfx.h" diff --git a/src/event.cpp b/src/event.cpp new file mode 100644 index 0000000..815e2fb --- /dev/null +++ b/src/event.cpp @@ -0,0 +1,374 @@ +/* +Copyright (C) 2003 Parallel Realities +Copyright (C) 2011, 2012, 2013 Guus Sliepen +Copyright (C) 2012, 2015, 2016 onpon4 + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#include "Starfighter.h" + +static Event gameEvent[20]; +static const char *klineGreeting[] = { + "How nice to see you again, Bainfield!", + "It all ends here, rebel!", + "I hope you won't disappoint me this time...", + "Do you really think you can defeat us?!" +}; + +void event_set() +{ + for (int i = 0 ; i < 20 ; i++) + { + gameEvent[i].time = 0; + gameEvent[i].face = -1; + strcpy(gameEvent[i].message, ""); + gameEvent[i].entity = -1; + gameEvent[i].flag = 0; + } + + switch (game.area) + { + case MISN_INTERCEPTION: + if ((aliens[ALIEN_KLINE].classDef == CD_KLINE) && + (aliens[ALIEN_KLINE].active)) + gameEvent[0].time = 2; + gameEvent[0].face = FACE_KLINE; + strcpy(gameEvent[0].message, klineGreeting[rand() % 4]); + + break; + + case MISN_MOEBO: + gameEvent[0].time = 2; + gameEvent[0].face = FACE_SID; + strcpy(gameEvent[0].message, "You should try and destroy some of the frigate's weaponary, it'll help!"); + + gameEvent[1].time = 120; + gameEvent[1].face = FACE_SID; + strcpy(gameEvent[1].message, "Chris, get a move on! The frigate is almost in range!"); + + gameEvent[2].time = 150; + gameEvent[2].face = FACE_SID; + strcpy(gameEvent[2].message, "The frigate is charging its cannon!"); + + gameEvent[3].time = 170; + gameEvent[3].face = FACE_SID; + strcpy(gameEvent[3].message, "Chris, HURRY!!!"); + + gameEvent[4].time = 180; + gameEvent[4].face = FACE_SID; + strcpy(gameEvent[4].message, "Oh my god..."); + gameEvent[4].entity = ALIEN_BOSS; + gameEvent[4].flag = FL_LEAVESECTOR | FL_IMMORTAL; + + break; + + case MISN_NEROD: + gameEvent[0].time = 2; + gameEvent[0].face = FACE_PHOEBE; + strcpy(gameEvent[0].message, "Hey, over here! Destroy this tug so I can break free!"); + + break; + + case MISN_ALLEZ: + gameEvent[0].time = 2; + gameEvent[0].face = FACE_CREW; + strcpy(gameEvent[0].message, "Thank God! Please, help us! If they destroy this ship..."); + + gameEvent[1].time = 6; + gameEvent[1].face = FACE_CHRIS; + strcpy(gameEvent[1].message, "How long do you need?"); + + gameEvent[2].time = 10; + gameEvent[2].face = FACE_CREW; + strcpy(gameEvent[2].message, "Just a few minutes!"); + + gameEvent[3].time = 60; + gameEvent[3].face = FACE_CREW; + strcpy(gameEvent[3].message, "Alright! We've got the weapons working again! Now to look at the engines..."); + gameEvent[3].entity = ALIEN_GOODTRANSPORT; + gameEvent[3].flag = -FL_NOFIRE; + + gameEvent[4].time = 80; + gameEvent[4].face = FACE_CREW; + strcpy(gameEvent[4].message, "DAMN! The guns are offline again! What you guys doing back there?!"); + gameEvent[4].entity = ALIEN_GOODTRANSPORT; + gameEvent[4].flag = FL_NOFIRE; + + gameEvent[5].time = 100; + gameEvent[5].face = FACE_CREW; + strcpy(gameEvent[5].message, "Chris, HELP!! We've lost all system power! We're a sitting duck out here!"); + gameEvent[5].entity = ALIEN_GOODTRANSPORT; + gameEvent[5].flag = FL_DISABLED; + + gameEvent[6].time = 120; + gameEvent[6].face = FACE_CREW; + strcpy(gameEvent[6].message, "Just a little longer..."); + + gameEvent[7].time = 140; + gameEvent[7].face = FACE_CREW; + strcpy(gameEvent[7].message, "Okay! We've fixed that one. We think we've found the problem with the engines too..."); + gameEvent[7].entity = ALIEN_GOODTRANSPORT; + gameEvent[7].flag = -FL_DISABLED; + + gameEvent[8].time = 177; + gameEvent[8].face = FACE_CREW; + strcpy(gameEvent[8].message, "Engines fixed! Let's move!"); + + gameEvent[9].time = 180; + gameEvent[9].entity = ALIEN_GOODTRANSPORT; + gameEvent[9].flag = FL_LEAVESECTOR | FL_IMMORTAL; + + break; + + case MISN_ELAMALE: + gameEvent[0].time = 5; + gameEvent[0].face = FACE_PHOEBE; + strcpy(gameEvent[0].message, "Ummm... something about this doesn't look right! They should be offering more resistance than this!"); + + gameEvent[1].time = -8; + gameEvent[1].face = FACE_PHOEBE; + strcpy(gameEvent[1].message, "DAMMIT! It's a trap! Come on, Chris, we have to leave NOW!!"); + + gameEvent[2].time = -9; + gameEvent[2].entity = ALIEN_PHOEBE; + gameEvent[2].flag = FL_LEAVESECTOR; + + gameEvent[3].time = -13; + gameEvent[3].face = FACE_SID; + strcpy(gameEvent[3].message, "Chris, wh..."); + + gameEvent[4].time = -15; + gameEvent[4].face = FACE_KLINE; + strcpy(gameEvent[4].message, "So finally I meet the man who has been causing us so much trouble!"); + + gameEvent[5].time = -20; + gameEvent[5].face = FACE_CHRIS; + strcpy(gameEvent[5].message, "I see you've jammed up my warp drive. Who are you?"); + + gameEvent[6].time = -25; + gameEvent[6].face = FACE_KLINE; + strcpy(gameEvent[6].message, "I am Kline Kethlan. And I am here to put to a stop to your worthless little crusade!"); + + gameEvent[7].time = -31; + gameEvent[7].face = FACE_CHRIS; + strcpy(gameEvent[7].message, "Kline Kethlan, huh? You sure sound confident."); + + gameEvent[8].time = -36; + gameEvent[8].face = FACE_KLINE; + strcpy(gameEvent[8].message, "Nowhere to run, nowhere to hide, and no one to help you! This will certainly be interesting..."); + + gameEvent[9].time = -42; + gameEvent[9].entity = ALIEN_KLINE; + gameEvent[9].flag = -(FL_IMMORTAL | FL_NOFIRE); + + break; + + case MISN_ODEON: + gameEvent[0].time = 2; + gameEvent[0].face = FACE_URSULA; + strcpy(gameEvent[0].message, "Unidentified craft sighted. Will proceed to destroy all targets."); + + gameEvent[1].time = 8; + gameEvent[1].face = FACE_CHRIS; + strcpy(gameEvent[1].message, "Looks like she's got one of those homing missile launchers too! Any advice, Phoebe?"); + + gameEvent[2].time = 14; + gameEvent[2].face = FACE_PHOEBE; + strcpy(gameEvent[2].message, "Just try and dodge them!"); + + break; + + case MISN_ALMARTHA: + gameEvent[0].time = 1; + gameEvent[0].face = FACE_CHRIS; + strcpy(gameEvent[0].message, "Nice ship!"); + + gameEvent[1].time = 7; + gameEvent[1].face = FACE_KRASS; + strcpy(gameEvent[1].message, "Thanks, boy. Made it myself!"); + + gameEvent[2].time = 60; + gameEvent[2].face = FACE_KRASS; + strcpy(gameEvent[2].message, "Hey, boy, we've got company! Looks like your friends didn't do a very good job after all!"); + gameEvent[2].entity = 10; + gameEvent[2].flag = -FL_ACTIVATE; + + gameEvent[3].time = 90; + gameEvent[3].entity = 11; + gameEvent[3].flag = -FL_ACTIVATE; + + gameEvent[4].time = 93; + gameEvent[4].face = FACE_KRASS; + strcpy(gameEvent[4].message, "Keep those things off my back or it'll cost you extra!!!"); + + gameEvent[5].time = 120; + gameEvent[5].entity = 12; + gameEvent[5].flag = -FL_ACTIVATE; + + gameEvent[6].time = 140; + gameEvent[6].face = FACE_PHOEBE; + strcpy(gameEvent[6].message, "Hey! Did we miss anything exciting?"); + gameEvent[6].entity = ALIEN_PHOEBE; + gameEvent[6].flag = -FL_ACTIVATE; + + gameEvent[7].time = 140; + gameEvent[7].entity = ALIEN_URSULA; + gameEvent[7].flag = -FL_ACTIVATE; + + gameEvent[8].time = 150; + gameEvent[8].face = FACE_KRASS; + strcpy(gameEvent[8].message, "I've earned my fee. I'll see you around, boy!"); + gameEvent[8].entity = ALIEN_GOODTRANSPORT; + gameEvent[8].flag = FL_LEAVESECTOR; + + break; + + case MISN_POSWIC: + gameEvent[0].time = 90; + gameEvent[0].face = FACE_SID; + strcpy(gameEvent[0].message, "DAMMIT! It's getting away! We've got to stop it!"); + gameEvent[0].entity = ALIEN_BOSS; + gameEvent[0].flag = FL_LEAVESECTOR; + + break; + + case MISN_SATURN: + gameEvent[0].time = 45; + gameEvent[0].face = FACE_SID; + strcpy(gameEvent[0].message, "Chris! Another two of those ray cannons just arrived in your sector!"); + gameEvent[0].entity = 11; + gameEvent[0].flag = -FL_ACTIVATE; + + gameEvent[1].time = 45; + gameEvent[1].entity = 12; + gameEvent[1].flag = -FL_ACTIVATE; + + gameEvent[2].time = 90; + gameEvent[2].face = FACE_SID; + strcpy(gameEvent[2].message, "Two more!"); + gameEvent[2].entity = 13; + gameEvent[2].flag = -FL_ACTIVATE; + + gameEvent[3].time = 90; + gameEvent[3].entity = 14; + gameEvent[3].flag = -FL_ACTIVATE; + + break; + + case MISN_JUPITER: + gameEvent[0].time = 1; + gameEvent[0].entity = 10; + gameEvent[0].flag = -FL_ACTIVATE; + + gameEvent[1].time = 2; + gameEvent[1].face = FACE_URSULA; + strcpy(gameEvent[1].message, "It's a trap! My God! It's Tyler!"); + + gameEvent[2].time = 8; + gameEvent[2].face = FACE_KRASS; + strcpy(gameEvent[2].message, "I'm a mercenary, what do you expect?! WEAPCO hired me to do a job, just like you have been doing."); + + gameEvent[3].time = 14; + gameEvent[3].face = FACE_CHRIS; + strcpy(gameEvent[3].message, "Good point. It would be foolish to expect anything else."); + + gameEvent[4].time = 15; + gameEvent[4].entity = 11; + gameEvent[4].flag = -FL_ACTIVATE; + + gameEvent[5].time = 20; + gameEvent[5].face = FACE_KRASS; + strcpy(gameEvent[5].message, "Now if you'll assist me in dying quickly, I have a cheque to earn, boy..."); + + gameEvent[6].time = 25; + gameEvent[6].face = FACE_CHRIS; + strcpy(gameEvent[6].message, "I have a name, you know. Do you remember it?"); + + gameEvent[4].time = 45; + gameEvent[4].entity = 12; + gameEvent[4].flag = -FL_ACTIVATE; + + gameEvent[4].time = 45; + gameEvent[4].entity = 13; + gameEvent[4].flag = -FL_ACTIVATE; + + break; + + case MISN_EARTH: + gameEvent[0].time = 2; + gameEvent[0].face = FACE_KLINE; + strcpy(gameEvent[0].message, "That's far enough, Bainfield. You've been lucky so far, but your luck is about to run out!"); + + gameEvent[1].time = 8; + gameEvent[1].face = FACE_CHRIS; + strcpy(gameEvent[1].message, "Yeah, right! Like I'd lose to you after coming this far!"); + + break; + + case MISN_VENUS: + gameEvent[0].time = 2; + gameEvent[0].face = FACE_CHRIS; + strcpy(gameEvent[0].message, "WEAPCO is finished, Kethlan! You have nowhere to run, nowhere to hide, and no one to help you."); + + gameEvent[1].time = 8; + gameEvent[1].face = FACE_KLINE; + strcpy(gameEvent[1].message, "You underestimate me, Bainfield."); + + break; + } +} + +void event_check() +{ + for (int i = 0 ; i < 20 ; i++) + { + if (engine.timeTaken == gameEvent[i].time) + { + if (strcmp(gameEvent[i].message, "@none@") != 0) + { + setRadioMessage(gameEvent[i].face, gameEvent[i].message, 1); + } + + if (gameEvent[i].entity > -1) + { + if (gameEvent[i].flag != -FL_ACTIVATE) + { + aliens[gameEvent[i].entity].flags += gameEvent[i].flag; + } + else + { + aliens[gameEvent[i].entity].active = true; + aliens[gameEvent[i].entity].x = ((int)player.x + + RANDRANGE(400, 800)); + aliens[gameEvent[i].entity].y = ((int)player.y + + RANDRANGE(-400, 800)); + } + } + + gameEvent[i].time = 0; + } + } +} + +void event_sync() +{ + for (int i = 0 ; i < 20 ; i++) + { + if (gameEvent[i].time < 0) + { + gameEvent[i].time = engine.timeTaken + abs(gameEvent[i].time); + } + } +} diff --git a/src/event.h b/src/event.h new file mode 100644 index 0000000..6996bd0 --- /dev/null +++ b/src/event.h @@ -0,0 +1,37 @@ +/* +Copyright (C) 2003 Parallel Realities +Copyright (C) 2011 Guus Sliepen +Copyright (C) 2015, 2016 onpon4 + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 3 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef EVENT_H +#define EVENT_H + +typedef struct Event_ { + + int time; + int face; + char message[255]; + int entity; + int flag; + +} Event; + +void event_set(); +void event_check(); +void event_sync(); + +#endif diff --git a/src/game.cpp b/src/game.cpp index f96782a..7108604 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1718,7 +1718,7 @@ static void game_doHud() engine.timeTaken++; engine.counter2 = SDL_GetTicks() + 1000; if (engine.missionCompleteTimer == 0) - checkScriptEvents(); + event_check(); } if ((engine.timeMission) && (!engine.cheatTime) && (player.shield > 0)) @@ -1748,7 +1748,7 @@ static void game_doHud() currentMission.timeLimit2[i]--; } checkTimer(); - checkScriptEvents(); + event_check(); } if ((engine.seconds == 0) && (engine.minutes == 0)) @@ -1761,7 +1761,7 @@ static void game_doHud() currentMission.timeLimit2[i]--; } checkTimer(); - checkScriptEvents(); + event_check(); engine.counter = (SDL_GetTicks() + 1000); } } @@ -2099,7 +2099,7 @@ int game_mainLoop() clearInfoLines(); - loadScriptEvents(); + event_set(); engine.ssx = 0; engine.ssy = 0; diff --git a/src/missions.cpp b/src/missions.cpp index 2dd8c59..faf7b3d 100644 --- a/src/missions.cpp +++ b/src/missions.cpp @@ -19,8 +19,6 @@ along with this program. If not, see . #include "Starfighter.h" -// God, I hate this file! :(( - Planet systemPlanet[10]; mission currentMission; static mission missions[MISN_MAX]; @@ -529,7 +527,7 @@ static char revealHiddenObjectives() if (game.area == MISN_ELAMALE) { mission_killAllEnemies(); - syncScriptEvents(); + event_sync(); aliens[ALIEN_KLINE].active = true; aliens[ALIEN_KLINE].x = player.x + 1000; aliens[ALIEN_KLINE].y = player.y; diff --git a/src/script.cpp b/src/script.cpp index 88dd6de..bfa823a 100644 --- a/src/script.cpp +++ b/src/script.cpp @@ -20,111 +20,6 @@ along with this program. If not, see . #include "Starfighter.h" static cutMsg cutMessage[10]; -static event gameEvent[20]; - -static void setKlineGreeting() -{ - static const char *greet[] = { - "How nice to see you again, Bainfield!", - "It all ends here, rebel!", - "I hope you won't disappoint me this time...", - "Do you really think you can defeat us?!" - }; - - gameEvent[0].time = 2; - gameEvent[0].face = FACE_KLINE; - strcpy(gameEvent[0].message, greet[rand() % 4]); - gameEvent[0].entity = -1; - gameEvent[0].flag = 0; -} - -void loadScriptEvents() -{ - for (int i = 0 ; i < 20 ; i++) - { - gameEvent[i].time = 0; - strcpy(gameEvent[i].message, ""); - gameEvent[i].entity = -1; - gameEvent[i].flag = 0; - } - - if ((game.area == MISN_INTERCEPTION) && - (aliens[ALIEN_KLINE].classDef == CD_KLINE) && - (aliens[ALIEN_KLINE].active)) - setKlineGreeting(); - - char filename[255]; - sprintf(filename, "data/script%d.txt", game.area); - - FILE *fp; - int i = 0; - - int time, entity, flags; - char face[255], message[255]; - - fp = fopen(filename, "rb"); - if (fp == NULL) - return; - - while (fscanf(fp, "%d %s %d %d ", &time, face, &entity, &flags) == 4) - { - if (fscanf(fp, "%[^\n]%*c", message) < 1) - strcpy(message, "Error: Text missing"); - - gameEvent[i].time = time; - gameEvent[i].face = getFace(face); - gameEvent[i].entity = entity; - gameEvent[i].flag = flags; - strcpy(gameEvent[i].message, message); - - i++; - } - - fclose(fp); -} - -void checkScriptEvents() -{ - for (int i = 0 ; i < 20 ; i++) - { - if (engine.timeTaken == gameEvent[i].time) - { - if (strcmp(gameEvent[i].message, "@none@") != 0) - { - setRadioMessage(gameEvent[i].face, gameEvent[i].message, 1); - } - - if (gameEvent[i].entity > -1) - { - if (gameEvent[i].flag != -FL_ACTIVATE) - { - aliens[gameEvent[i].entity].flags += gameEvent[i].flag; - } - else - { - aliens[gameEvent[i].entity].active = true; - aliens[gameEvent[i].entity].x = ((int)player.x + - RANDRANGE(400, 800)); - aliens[gameEvent[i].entity].y = ((int)player.y + - RANDRANGE(-400, 800)); - } - } - - gameEvent[i].time = 0; - } - } -} - -void syncScriptEvents() -{ - for (int i = 0 ; i < 20 ; i++) - { - if (gameEvent[i].time < 0) - { - gameEvent[i].time = engine.timeTaken + abs(gameEvent[i].time); - } - } -} static void setScene(int scene) { diff --git a/src/script.h b/src/script.h index 8bba7d8..a883e5a 100644 --- a/src/script.h +++ b/src/script.h @@ -20,9 +20,6 @@ along with this program. If not, see . #ifndef SCRIPT_H #define SCRIPT_H -extern void loadScriptEvents(); -extern void checkScriptEvents(); -extern void syncScriptEvents(); extern void doCutscene(int scene); #endif diff --git a/src/structs.h b/src/structs.h index 49a6ec2..f2071e3 100644 --- a/src/structs.h +++ b/src/structs.h @@ -227,16 +227,6 @@ typedef struct Planet_ { } Planet; -typedef struct event_ { - - int time; - char message[255]; - int face; - int entity; - int flag; - -} event; - typedef struct cutMsg_ { int face;