Wolf3D-Mac/Level.c

1 line
17 KiB
C
Raw Normal View History

#include "wolfdef.h" #include <string.h> /* static object info*/ /* List of bad guy sprites */ static Word DKnightSprs[] = { S_DKNIGHT_ATK1, S_DKNIGHT_ATK2, S_DKNIGHT_ATK3, S_DKNIGHT_ATK4, S_DKNIGHT_WLK1, S_DKNIGHT_WLK2, S_DKNIGHT_WLK3, S_DKNIGHT_WLK4, S_DKNIGHT_DTH1, S_DKNIGHT_DTH2, S_DKNIGHT_DTH3,S_G_KEY,0}; static Word DogSprs[] = { S_DOG_ATK1, S_DOG_ATK2, S_DOG_ATK3, S_DOG_WLK1, S_DOG_WLK2, S_DOG_WLK3, S_DOG_WLK4, S_DOG_DTH1, S_DOG_DTH2, S_DOG_DTH3,0}; static Word NaziSprs[] = { S_GUARD_ATK1, S_GUARD_ATK2, S_GUARD_ATK3, S_GUARD_WLK1, S_GUARD_WLK2, S_GUARD_WLK3, S_GUARD_WLK4, S_GUARD_PAIN, S_GUARD_DTH1, S_GUARD_DTH2, S_GUARD_DTH3,S_AMMO,0}; static Word HansSprs[] = { S_HANS_ATK1, S_HANS_ATK2, S_HANS_ATK3, S_HANS_WLK1, S_HANS_WLK2, S_HANS_WLK3, S_HANS_WLK4, S_HANS_DTH1, S_HANS_DTH2, S_HANS_DTH3,S_G_KEY,0}; static Word HitlerSprs[] = { S_HITLER_ATK1, S_HITLER_ATK2, S_HITLER_ATK3, S_HITLER_WLK1, S_HITLER_WLK2, S_HITLER_WLK3, S_HITLER_WLK4, S_HITLER_DTH1, S_HITLER_DTH2, S_HITLER_DTH3, S_MHITLER_ATK1, S_MHITLER_ATK2, S_MHITLER_ATK3, S_MHITLER_DIE1, S_MHITLER_DIE2, S_MHITLER_DIE3, S_MHITLER_DIE4, S_MHITLER_WLK1, S_MHITLER_WLK2, S_MHITLER_WLK3, S_MHITLER_WLK4,0}; static Word UberSprs[] = { S_UBER_ATK1, S_UBER_ATK2, S_UBER_ATK3, S_UBER_ATK4, S_UBER_WLK1, S_UBER_WLK2, S_UBER_WLK3, S_UBER_WLK4, S_UBER_DTH1, S_UBER_DTH2, S_UBER_DTH3,S_G_KEY,0}; static Word MutantSprs[] = { S_MUTANT_ATK1, S_MUTANT_ATK2, S_MUTANT_ATK3, S_MUTANT_WLK1, S_MUTANT_WLK2, S_MUTANT_WLK3, S_MUTANT_WLK4, S_MUTANT_PAIN, S_MUTANT_DTH1, S_MUTANT_DTH2, S_MUTANT_DTH3,S_AMMO,0}; static Word OfficerSprs[] = { S_OFFICER_ATK1, S_OFFICER_ATK2, S_OFFICER_ATK3, S_OFFICER_WLK1, S_OFFICER_WLK2, S_OFFICER_WLK3, S_OFFICER_WLK4, S_OFFICER_PAIN, S_OFFICER_DTH1, S_OFFICER_DTH2, S_OFFICER_DTH3,S_AMMO,0}; static Word SchabbsSpr[] = { S_SCHABBS_ATK1, S_SCHABBS_ATK2, S_SCHABBS_WLK1, S_SCHABBS_WLK2, S_SCHABBS_WLK3, S_SCHABBS_WLK4, S_SCHABBS_DTH1, S_SCHABBS_DTH2, S_SCHABBS_DTH3,S_G_KEY,0}; static Word SSSprs[] = { S_SS_ATK1, S_SS_ATK2, S_SS_ATK3, S_SS_WLK1, S_SS_WLK2, S_SS_WLK3, S_SS_WLK4, S_SS_PAIN, S_SS_DTH1, S_SS_DTH2, S_SS_DTH3,S_MACHINEGUN,S_AMMO,0}; static Word TransSprs[] = { S_TRANS_ATK1, S_TRANS_ATK2, S_TRANS_ATK3, S_TRANS_WLK1, S_TRANS_WLK2, S_TRANS_WLK3, S_TRANS_WLK4, S_TRANS_DTH1, S_TRANS_DTH2, S_TRANS_DTH3,S_G_KEY,0}; static Byte EnemyHits[16]; static Word *EnemySprs[] = { /* This list MUST match class_t! */ NaziSprs, OfficerSprs, SSSprs, DogSprs, MutantSprs, HansSprs, SchabbsSpr, TransSprs, UberSprs, DKnightSprs, HitlerSprs, HitlerSprs }; static Byte WallHits[256]; Word staticflags[] = { 0, /*S_WATER_PUDDLE,*/ TI_BLOCKMOVE, /*S_GREEN_BARREL,*/ TI_BLOCKMOVE, /*S_CHAIR_TABLE,*/ TI_BLOCKMOVE, /*S_FLOOR_LAMP,*/ 0, /*S_CHANDELIER,*/ TI_GETABLE, /*S_DOG_FOOD,*/ TI_BLOCKMOVE, /*S_COLUMN,*/ TI_BLOCKMOVE, /*S_POTTED_TREE,*/ TI_BLOCKMOVE, /*S_FLAG,*/ TI_BLOCKMOVE, /*S_POTTED_PLANT,*/ TI_BLOCKMOVE, /*S_BLUE_POT,*/ 0, /*S_DEBRIS1,*/ 0, /*S_LIGHT,*/ 0, /*S_BUCKET,*/ TI_BLOCKMOVE, /*S_ARMOUR,*/ TI_BLOCKMOVE, /*S_CAGE,*/ TI_GETABLE, /*S_G_KEY,*/ TI_GETABLE, /*S_S_KEY,*/ TI_GETABLE, /*S_BANDOLIER*/ TI_GETABLE, /*S_AMMOCASE,*/ TI_GETABLE, /*S_FOOD,*/ TI_GETABLE, /*S_HEALTH,*/ TI_GETABLE, /*S_AMMO,*/ TI_GETABLE, /*S_MACHINEGUN,*/ TI_GETABLE, /*S_CHAINGUN,*/ TI_GETABLE, /*S_CROSS,*/ TI_GETABLE, /*S_CHALICE,*/ TI_GETABLE, /*S_CHEST,*/ TI_GETABLE, /*S_CROWN,*/ TI_GETABLE, /*S_ONEUP,*/ TI_BLOCKMOVE, /*S_WOOD_BARREL,*/ TI_BLOCKMOVE, /*S_WATER_WELL,*/ TI_GETABLE, /*S_FLAMETHROWER */ TI_GETABLE, /*S_GASCAN */ TI_GETABLE, /*S_LAUNCHER */ TI_GETABLE /*S_MISSILES */ }; /********************************** Spawn a static object at x,y **********************************/ void SpawnStatic(Word x,Word y,Word shape) { Word *TilePtr; static_t *StatPtr; if (numstatics>=MAXSTATICS) { return; /* Oh oh!! */ } TilePtr = &tilemap[y][x]; /* Precalc tile pointer */ StatPtr = &statics[numstatics]; StatPtr->x = (x<<FRACBITS)+0x80; /* Set the pixel X */ StatPtr->y = (y<<FRACBITS)+0x80; /* Set the pixe