starfighter/src/engine.h

125 lines
2.3 KiB
C
Raw Normal View History

/*
Copyright (C) 2003 Parallel Realities
Copyright (C) 2011 Guus Sliepen
Copyright (C) 2015-2020 Layla Marchant <diligentcircle@riseup.net>
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
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.
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/>.
*/
2017-01-25 16:48:29 +01:00
#ifndef ENGINE_H
#define ENGINE_H
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"
#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;
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)
Uint32 missionCompleteTimer;
2016-01-02 23:37:19 +01:00
// Times the mission normally
Uint32 counter2;
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;
int paused;
2016-01-02 23:37:19 +01:00
int gameSection;
int useAudio;
int useSound;
int useMusic;
int fullScreen;
int autoPause;
int radioLife;
char lang[STRMAX_SHORT];
2016-01-02 23:37:19 +01: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
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;
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);
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();
void engine_setFullscreen(int value);
void engine_resetLists();
2016-01-02 22:59:48 +01:00
void engine_cleanup();
#endif