185 lines
4.2 KiB
C
Executable File
185 lines
4.2 KiB
C
Executable File
/*
|
|
Copyright (C) 1994-1995 Apogee Software, Ltd.
|
|
|
|
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 2
|
|
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, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
//***************************************************************************
|
|
//
|
|
// RT_TED.C - Ted stuff for maps and such
|
|
//
|
|
//***************************************************************************
|
|
|
|
#include "rottnet.h"
|
|
|
|
|
|
#ifndef _rt_ted_public
|
|
#define _rt_ted_public
|
|
|
|
#define MAXCLOCKS 10
|
|
#define MAXSPAWNLOCATIONS 50
|
|
#define POWERUPTICS ((VBLCOUNTER*60)+6)
|
|
#define IsPlatform(x,y) ( (MAPSPOT((x),(y),2)==1) || ((MAPSPOT((x),(y),2)>=4) && (MAPSPOT((x),(y),2)<=9)))
|
|
|
|
#define EXITTILE (107)
|
|
#define SECRETEXITTILE (106)
|
|
|
|
#define FL_SWITCH 0x01
|
|
#define FL_ON 0x02
|
|
#define FL_REVERSIBLE 0x04
|
|
#define FL_W_DAMAGE 0x08
|
|
#define FL_W_INVERTED 0x10
|
|
#define FL_S_FLIPPED 0x20
|
|
|
|
|
|
|
|
#define MAXTEAMS 11
|
|
|
|
typedef struct
|
|
{
|
|
int nummembers;
|
|
int uniformcolor;
|
|
int tilex,tiley;
|
|
byte dir;
|
|
|
|
} teamtype;
|
|
|
|
extern teamtype TEAM[MAXPLAYERS];
|
|
|
|
typedef struct
|
|
{ thingtype which;
|
|
byte flags;
|
|
byte hitpoints;
|
|
word tile;
|
|
byte tilex,tiley;
|
|
|
|
|
|
} wall_t;
|
|
|
|
typedef struct
|
|
{
|
|
int number;
|
|
char mapname[23];
|
|
} mapinfo_t;
|
|
|
|
typedef struct
|
|
{
|
|
int nummaps;
|
|
mapinfo_t maps[100];
|
|
} mapfileinfo_t;
|
|
|
|
#define MAXLEVELNAMELENGTH 23
|
|
#define ALLOCATEDLEVELNAMELENGTH 24
|
|
#define NUMPLANES 3
|
|
#define NUMHEADEROFFSETS 100
|
|
|
|
#define MAP_SPECIAL_TOGGLE_PUSHWALLS 0x0001
|
|
|
|
typedef struct
|
|
{
|
|
unsigned used;
|
|
unsigned CRC;
|
|
unsigned RLEWtag;
|
|
unsigned MapSpecials;
|
|
unsigned planestart[ NUMPLANES ];
|
|
unsigned planelength[ NUMPLANES ];
|
|
char Name[ ALLOCATEDLEVELNAMELENGTH ];
|
|
} RTLMAP;
|
|
|
|
|
|
typedef struct
|
|
{int x,y,dir;
|
|
}_2dvec;
|
|
|
|
extern _2dvec SPAWNLOC[MAXSPAWNLOCATIONS],FIRST,SECOND;
|
|
|
|
typedef struct
|
|
{int time1;
|
|
int time2;
|
|
byte points_to_tilex;
|
|
byte points_to_tiley;
|
|
int linkindex;
|
|
}str_clock;
|
|
|
|
|
|
extern int numareatiles[NUMAREAS+1];
|
|
extern int shapestart,shapestop;
|
|
extern int NUMSPAWNLOCATIONS;
|
|
extern int mapwidth;
|
|
extern int mapheight;
|
|
|
|
extern wall_t walls[MAXWALLTILES];
|
|
extern str_clock Clocks[MAXCLOCKS];
|
|
extern int LightsInArea[NUMAREAS+1];
|
|
extern int numclocks;
|
|
extern word ELEVATORLOCATION;
|
|
|
|
extern unsigned short int *mapplanes[3];
|
|
extern int gunsstart;
|
|
extern int elevatorstart;
|
|
extern int spritestop;
|
|
extern int fog;
|
|
extern int lightsource;
|
|
extern int SNAKELEVEL;
|
|
extern boolean insetupgame;
|
|
extern char LevelName[80];
|
|
extern boolean ISRTL;
|
|
|
|
void PreCacheGroup(int,int,int); // added type
|
|
void AssignTeams(void);
|
|
void LoadTedMap( const char *extension, int mapnum );
|
|
void SetupGameLevel(void);
|
|
void ScanInfoPlane(void);
|
|
void PreCacheLump( int lump, int level, int type ); // added type
|
|
void SetupGameLevelAgain (void);
|
|
void ScanInfoPlaneAgain (void);
|
|
void PreCacheActor( int actor, int which );
|
|
void PreCache( void );
|
|
|
|
void SetupWalls( void );
|
|
void SetupAnimatedWalls( void );
|
|
void SetupSwitches( void );
|
|
void SetupPlayers( void );
|
|
void SetupMaskedWalls( void );
|
|
void SetupPushWalls( void );
|
|
void SetupPushWallLinks( void );
|
|
void SetupDoors (void);
|
|
void SetupDoorLinks (void);
|
|
void SetupClocks (void);
|
|
void SetupLinkedActors (void);
|
|
void SetupLights(void);
|
|
void SetupWindows ( void );
|
|
|
|
int GetWallIndex( int texture );
|
|
void PrintMapStats (void);
|
|
void PrintTileStats (void);
|
|
|
|
void GetMapInfo (mapfileinfo_t * mapinfo);
|
|
void GetMapFileName ( char * filename );
|
|
void SetBattleMapFileName ( char * filename );
|
|
word GetMapCRC ( int num );
|
|
|
|
int GetNextMap ( int tilex, int tiley );
|
|
void Illuminate();
|
|
|
|
int GetSongForLevel ( void );
|
|
void CheckHolidays(void);
|
|
boolean IsChristmas(void);
|
|
|
|
boolean DoPanicMapping (void);
|
|
|
|
#endif
|