2 Copyright (C) 2004-2011 Parallel Realities
3 Copyright (C) 2011-2015 Perpendicular Dimensions
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public License
7 as published by the Free Software Foundation; either version 2
8 of the License, or (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14 See the GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26 Entity *allowableEnemy[10];
27 int maxAllowableEnemies;
33 unsigned char data[MAPWIDTH][MAPHEIGHT];
36 int limitLeft, limitRight, limitUp, limitDown;
38 int foundItems, totalItems;
39 int foundMIAs, totalMIAs;
42 // time limit for extreme setting
46 // special for ice levels
49 // special for flooded tunnel #4
51 int requiredWaterLevel;
53 // special for arctic wastes
58 // air/water decoration
60 bool isGrasslandsTileset;
65 unsigned int bossNextThink;
66 void (*doBossLevelAction) (void);
69 float bossEnergyMeterBit;
93 bool isPracticeMission();
94 bool isValid(int x, int y);
95 bool isSolid(int x, int y);
96 bool isBreakable(int x, int y);
97 bool isNoReset(int x, int y);
98 bool isLiquid(int x, int y);
99 bool isTopLayer(int x, int y);
101 Persistant *getPersistant(const char *name);
102 Persistant *createPersistant(const char *name);
103 void destroyPersistant(const char *name);
105 void setName(const char *name);
106 void setClipping(int limitLeft, int limitRight, int limitUp, int limitDown);
107 void addTrain(const char *name, int startX, int startY, int endX, int endY, int pause, bool atStart, bool active);
108 void addDoor(const char *name, int type, int startX, int startY, int endX, int endY, bool active);
109 void addSwitch(const char *name, const char *linkName, const char *requiredObjectName, const char *activateMessage, int type, int x, int y, bool activated);
110 void addItem(Entity *item);
111 void addBullet(Entity *bullet);
112 void addParticle(float x, float y, float dx, float dy, int health, int color, Sprite *sprite, int flags);
113 void addEnemy(Entity *enemy);
114 void addMIA(Entity *mia);
115 void addObstacle(Entity *obstacle);
116 void addSpawnPoint(const char *name, int x, int y, int type, int subtype, int min, int max, bool active);
117 void addEffect(Effect *effect);
118 void addObjective(const char *description, const char *target, int targetValue, bool required);
119 void addTeleporter(Teleporter *teleporter);
120 void addLineDef(LineDef *lineDef);
121 void addTrap(Trap *trap);
122 void evalTileset(const char *baseDir);
124 void killAllEnemies();
126 void setAllowableEnemy(Entity *enemy);
127 char *getSpawnableEnemy();
128 char *getSpawnableEnemy(int i);
130 void getRandomEntityPosition(int *x, int *y);
131 void setMainBossPart(Boss *boss);