2011-08-24 14:14:44 +02:00
|
|
|
/*
|
|
|
|
Copyright (C) 2003 Parallel Realities
|
2015-03-01 21:37:32 +01:00
|
|
|
Copyright (C) 2011 Guus Sliepen
|
2020-12-26 06:10:10 +01:00
|
|
|
Copyright (C) 2015-2020 The Diligent Circle <diligentcircle@riseup.net>
|
2011-08-24 14:14:44 +02:00
|
|
|
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
|
|
modify it under the terms of the GNU General Public License
|
2015-02-26 17:20:36 +01:00
|
|
|
as published by the Free Software Foundation; either version 3
|
2011-08-24 14:14:44 +02:00
|
|
|
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
|
2015-02-26 17:20:36 +01:00
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
GNU General Public License for more details.
|
2011-08-24 14:14:44 +02:00
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
2015-02-26 17:20:36 +01:00
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
2011-08-24 14:14:44 +02:00
|
|
|
*/
|
|
|
|
|
2017-01-25 16:48:29 +01:00
|
|
|
#ifndef ENGINE_H
|
|
|
|
#define ENGINE_H
|
2015-03-04 15:11:04 +01:00
|
|
|
|
2016-01-02 23:37:19 +01:00
|
|
|
#include "SDL.h"
|
|
|
|
|
|
|
|
#include "defs.h"
|
2016-01-02 22:59:48 +01:00
|
|
|
#include "structs.h"
|
|
|
|
|
2016-11-26 00:35:25 +01:00
|
|
|
#include "collectable.h"
|
|
|
|
|
2016-01-02 23:37:19 +01:00
|
|
|
|
|
|
|
typedef struct Engine_ {
|
|
|
|
|
|
|
|
SDL_Event event;
|
|
|
|
int done;
|
|
|
|
|
|
|
|
SDL_RWops *sdlrw;
|
|
|
|
|
|
|
|
float musicVolume;
|
|
|
|
|
|
|
|
int maxAliens;
|
|
|
|
|
|
|
|
float ssx;
|
|
|
|
float ssy;
|
|
|
|
float smx;
|
|
|
|
float smy;
|
|
|
|
|
2016-11-25 18:37:26 +01:00
|
|
|
Object *bulletHead;
|
|
|
|
Object *bulletTail;
|
|
|
|
Object *explosionHead;
|
|
|
|
Object *explosionTail;
|
|
|
|
Collectable *collectableHead;
|
|
|
|
Collectable *collectableTail;
|
|
|
|
Object *debrisHead;
|
|
|
|
Object *debrisTail;
|
2016-01-02 23:37:19 +01:00
|
|
|
|
|
|
|
int cursor_x, cursor_y;
|
|
|
|
|
|
|
|
int commsSection;
|
|
|
|
|
|
|
|
int eventTimer;
|
|
|
|
|
|
|
|
int lowShield;
|
|
|
|
int averageShield;
|
|
|
|
|
|
|
|
int targetIndex;
|
|
|
|
|
|
|
|
// Mission completion timer (allows for 4 seconds before leaving sector)
|
2016-01-12 16:41:42 +01:00
|
|
|
Uint32 missionCompleteTimer;
|
2016-01-02 23:37:19 +01:00
|
|
|
|
|
|
|
// Times the mission normally
|
|
|
|
Uint32 counter2;
|
2016-01-12 20:52:24 +01:00
|
|
|
long timeTaken; // In seconds
|
2016-01-02 23:37:19 +01:00
|
|
|
|
|
|
|
// For missions with a time limit
|
|
|
|
int timeMission;
|
|
|
|
Uint32 counter;
|
|
|
|
int seconds;
|
|
|
|
int minutes;
|
|
|
|
|
|
|
|
// Mission Related stuff
|
|
|
|
int allAliensDead;
|
|
|
|
int addAliens;
|
|
|
|
|
2016-11-19 17:43:50 +01:00
|
|
|
int paused;
|
2016-01-02 23:37:19 +01:00
|
|
|
int gameSection;
|
|
|
|
|
2016-11-19 17:43:50 +01:00
|
|
|
int useAudio;
|
|
|
|
int useSound;
|
|
|
|
int useMusic;
|
|
|
|
int fullScreen;
|
|
|
|
int autoPause;
|
2020-07-16 19:22:16 +02:00
|
|
|
int radioLife;
|
2020-07-20 19:10:25 +02:00
|
|
|
char lang[STRMAX_SHORT];
|
2016-01-02 23:37:19 +01:00
|
|
|
|
2018-04-21 16:44:33 +02:00
|
|
|
char configDirectory[PATH_MAX];
|
2016-01-02 23:37:19 +01:00
|
|
|
|
2020-06-22 04:19:28 +02:00
|
|
|
int keyState[KEY_LAST];
|
|
|
|
double xaxis;
|
|
|
|
double yaxis;
|
2020-07-27 17:41:40 +02:00
|
|
|
|
|
|
|
int useController;
|
2016-01-02 23:37:19 +01:00
|
|
|
|
2016-11-19 17:43:50 +01:00
|
|
|
int cheat; // overall cheat
|
|
|
|
int cheatShield;
|
|
|
|
int cheatCash;
|
|
|
|
int cheatAmmo;
|
|
|
|
int cheatTime;
|
2016-01-02 23:37:19 +01:00
|
|
|
|
|
|
|
} Engine;
|
|
|
|
|
|
|
|
|
2015-05-21 01:49:37 +02:00
|
|
|
extern Engine engine;
|
2011-08-26 21:29:04 +02:00
|
|
|
|
2015-05-21 01:49:37 +02:00
|
|
|
void engine_init();
|
2016-01-02 22:59:48 +01:00
|
|
|
void engine_showError(int errorId, const char *name);
|
2019-05-19 19:40:50 +02:00
|
|
|
void engine_warn(const char *msg);
|
|
|
|
void engine_error(const char *msg);
|
2016-01-02 22:59:48 +01:00
|
|
|
void engine_setupConfigDirectory();
|
|
|
|
void engine_setMode();
|
2019-05-30 18:01:42 +02:00
|
|
|
void engine_setFullscreen(int value);
|
2016-11-23 03:16:49 +01:00
|
|
|
void engine_resetLists();
|
2016-01-02 22:59:48 +01:00
|
|
|
void engine_cleanup();
|
2015-03-04 15:11:04 +01:00
|
|
|
|
|
|
|
#endif
|