]> 4ch.mooo.com Git - 16.git/blobdiff - 16/wf3d8086/wl_def.h
wolf3d 8088 port by king crimsom is added to 16/
[16.git] / 16 / wf3d8086 / wl_def.h
diff --git a/16/wf3d8086/wl_def.h b/16/wf3d8086/wl_def.h
new file mode 100755 (executable)
index 0000000..d1bc080
--- /dev/null
@@ -0,0 +1,1276 @@
+//#define BETA\r
+#define YEAR   1992\r
+#define MONTH  9\r
+#define DAY            30\r
+\r
+#include "ID_HEADS.H"\r
+#include <MATH.H>\r
+#include <VALUES.H>\r
+\r
+#include "WL_MENU.H"\r
+\r
+#ifdef SPANISH\r
+#include "SPANISH.H"\r
+#else\r
+#include "FOREIGN.H"\r
+#endif\r
+\r
+#ifdef SPEAR\r
+#include "F_SPEAR.H"\r
+#endif\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                       MACROS\r
+\r
+=============================================================================\r
+*/\r
+\r
+\r
+#define COLORBORDER(color)             asm{mov dx,STATUS_REGISTER_1;in al,dx;\\r
+       mov dx,ATR_INDEX;mov al,ATR_OVERSCAN;out dx,al;mov al,color;out dx,al;\\r
+       mov     al,32;out dx,al};\r
+\r
+#define MAPSPOT(x,y,plane)             (*(mapsegs[plane]+farmapylookup[y]+x))\r
+\r
+#define SIGN(x)        ((x)>0?1:-1)\r
+#define ABS(x)                 ((int)(x)>0?(x):-(x))\r
+#define LABS(x)        ((long)(x)>0?(x):-(x))\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                GLOBAL CONSTANTS\r
+\r
+=============================================================================\r
+*/\r
+\r
+#define MAXACTORS              150                             // max number of nazis, etc / map\r
+#define MAXSTATS               400                             // max number of lamps, bonus, etc\r
+#define MAXDOORS               64                              // max number of sliding doors\r
+#define MAXWALLTILES   64                              // max number of wall tiles\r
+\r
+//\r
+// tile constants\r
+//\r
+\r
+#define        ICONARROWS              90\r
+#define PUSHABLETILE   98\r
+#define EXITTILE               99                              // at end of castle\r
+#define AREATILE               107                             // first of NUMAREAS floor tiles\r
+#define NUMAREAS               37\r
+#define ELEVATORTILE   21\r
+#define AMBUSHTILE             106\r
+#define        ALTELEVATORTILE 107\r
+\r
+#define NUMBERCHARS    9\r
+\r
+\r
+//----------------\r
+\r
+#define EXTRAPOINTS            40000\r
+\r
+#define PLAYERSPEED            3000\r
+#define RUNSPEED               6000\r
+\r
+#define        SCREENSEG               0xa000\r
+\r
+#define SCREENBWIDE            80\r
+\r
+#define HEIGHTRATIO            0.50            // also defined in id_mm.c\r
+\r
+#define BORDERCOLOR    3\r
+#define FLASHCOLOR     5\r
+#define FLASHTICS      4\r
+\r
+\r
+#define PLAYERSIZE             MINDIST                 // player radius\r
+#define MINACTORDIST   0x10000l                // minimum dist from player center\r
+                                                                               // to any actor center\r
+\r
+#define NUMLATCHPICS   100\r
+\r
+\r
+#define PI     3.141592657\r
+\r
+#define GLOBAL1                (1l<<16)\r
+#define TILEGLOBAL  GLOBAL1\r
+#define PIXGLOBAL      (GLOBAL1/64)\r
+#define TILESHIFT              16l\r
+#define UNSIGNEDSHIFT  8\r
+\r
+#define ANGLES         360                                     // must be divisable by 4\r
+#define ANGLEQUAD      (ANGLES/4)\r
+#define FINEANGLES     3600\r
+#define ANG90          (FINEANGLES/4)\r
+#define ANG180         (ANG90*2)\r
+#define ANG270         (ANG90*3)\r
+#define ANG360         (ANG90*4)\r
+#define VANG90         (ANGLES/4)\r
+#define VANG180                (VANG90*2)\r
+#define VANG270                (VANG90*3)\r
+#define VANG360                (VANG90*4)\r
+\r
+#define MINDIST                (0x5800l)\r
+\r
+\r
+#define        MAXSCALEHEIGHT  256                             // largest scale on largest view\r
+\r
+#define MAXVIEWWIDTH           320\r
+\r
+#define MAPSIZE                64                                      // maps are 64*64 max\r
+#define NORTH  0\r
+#define EAST   1\r
+#define SOUTH  2\r
+#define WEST   3\r
+\r
+\r
+#define STATUSLINES            40\r
+\r
+#define SCREENSIZE             (SCREENBWIDE*208)\r
+#define PAGE1START             0\r
+#define PAGE2START             (SCREENSIZE)\r
+#define PAGE3START             (SCREENSIZE*2u)\r
+#define        FREESTART               (SCREENSIZE*3u)\r
+\r
+\r
+#define PIXRADIUS              512\r
+\r
+#define STARTAMMO              8\r
+\r
+\r
+// object flag values\r
+\r
+#define FL_SHOOTABLE   1\r
+#define FL_BONUS               2\r
+#define FL_NEVERMARK   4\r
+#define FL_VISABLE             8\r
+#define FL_ATTACKMODE  16\r
+#define FL_FIRSTATTACK 32\r
+#define FL_AMBUSH              64\r
+#define FL_NONMARK             128\r
+\r
+\r
+//\r
+// sprite constants\r
+//\r
+\r
+enum   {\r
+               SPR_DEMO,\r
+               SPR_DEATHCAM,\r
+//\r
+// static sprites\r
+//\r
+               SPR_STAT_0,SPR_STAT_1,SPR_STAT_2,SPR_STAT_3,\r
+               SPR_STAT_4,SPR_STAT_5,SPR_STAT_6,SPR_STAT_7,\r
+\r
+               SPR_STAT_8,SPR_STAT_9,SPR_STAT_10,SPR_STAT_11,\r
+               SPR_STAT_12,SPR_STAT_13,SPR_STAT_14,SPR_STAT_15,\r
+\r
+               SPR_STAT_16,SPR_STAT_17,SPR_STAT_18,SPR_STAT_19,\r
+               SPR_STAT_20,SPR_STAT_21,SPR_STAT_22,SPR_STAT_23,\r
+\r
+               SPR_STAT_24,SPR_STAT_25,SPR_STAT_26,SPR_STAT_27,\r
+               SPR_STAT_28,SPR_STAT_29,SPR_STAT_30,SPR_STAT_31,\r
+\r
+               SPR_STAT_32,SPR_STAT_33,SPR_STAT_34,SPR_STAT_35,\r
+               SPR_STAT_36,SPR_STAT_37,SPR_STAT_38,SPR_STAT_39,\r
+\r
+               SPR_STAT_40,SPR_STAT_41,SPR_STAT_42,SPR_STAT_43,\r
+               SPR_STAT_44,SPR_STAT_45,SPR_STAT_46,SPR_STAT_47,\r
+\r
+#ifdef SPEAR\r
+               SPR_STAT_48,SPR_STAT_49,SPR_STAT_50,SPR_STAT_51,\r
+#endif\r
+\r
+//\r
+// guard\r
+//\r
+               SPR_GRD_S_1,SPR_GRD_S_2,SPR_GRD_S_3,SPR_GRD_S_4,\r
+               SPR_GRD_S_5,SPR_GRD_S_6,SPR_GRD_S_7,SPR_GRD_S_8,\r
+\r
+               SPR_GRD_W1_1,SPR_GRD_W1_2,SPR_GRD_W1_3,SPR_GRD_W1_4,\r
+               SPR_GRD_W1_5,SPR_GRD_W1_6,SPR_GRD_W1_7,SPR_GRD_W1_8,\r
+\r
+               SPR_GRD_W2_1,SPR_GRD_W2_2,SPR_GRD_W2_3,SPR_GRD_W2_4,\r
+               SPR_GRD_W2_5,SPR_GRD_W2_6,SPR_GRD_W2_7,SPR_GRD_W2_8,\r
+\r
+               SPR_GRD_W3_1,SPR_GRD_W3_2,SPR_GRD_W3_3,SPR_GRD_W3_4,\r
+               SPR_GRD_W3_5,SPR_GRD_W3_6,SPR_GRD_W3_7,SPR_GRD_W3_8,\r
+\r
+               SPR_GRD_W4_1,SPR_GRD_W4_2,SPR_GRD_W4_3,SPR_GRD_W4_4,\r
+               SPR_GRD_W4_5,SPR_GRD_W4_6,SPR_GRD_W4_7,SPR_GRD_W4_8,\r
+\r
+               SPR_GRD_PAIN_1,SPR_GRD_DIE_1,SPR_GRD_DIE_2,SPR_GRD_DIE_3,\r
+               SPR_GRD_PAIN_2,SPR_GRD_DEAD,\r
+\r
+               SPR_GRD_SHOOT1,SPR_GRD_SHOOT2,SPR_GRD_SHOOT3,\r
+\r
+//\r
+// dogs\r
+//\r
+               SPR_DOG_W1_1,SPR_DOG_W1_2,SPR_DOG_W1_3,SPR_DOG_W1_4,\r
+               SPR_DOG_W1_5,SPR_DOG_W1_6,SPR_DOG_W1_7,SPR_DOG_W1_8,\r
+\r
+               SPR_DOG_W2_1,SPR_DOG_W2_2,SPR_DOG_W2_3,SPR_DOG_W2_4,\r
+               SPR_DOG_W2_5,SPR_DOG_W2_6,SPR_DOG_W2_7,SPR_DOG_W2_8,\r
+\r
+               SPR_DOG_W3_1,SPR_DOG_W3_2,SPR_DOG_W3_3,SPR_DOG_W3_4,\r
+               SPR_DOG_W3_5,SPR_DOG_W3_6,SPR_DOG_W3_7,SPR_DOG_W3_8,\r
+\r
+               SPR_DOG_W4_1,SPR_DOG_W4_2,SPR_DOG_W4_3,SPR_DOG_W4_4,\r
+               SPR_DOG_W4_5,SPR_DOG_W4_6,SPR_DOG_W4_7,SPR_DOG_W4_8,\r
+\r
+               SPR_DOG_DIE_1,SPR_DOG_DIE_2,SPR_DOG_DIE_3,SPR_DOG_DEAD,\r
+               SPR_DOG_JUMP1,SPR_DOG_JUMP2,SPR_DOG_JUMP3,\r
+\r
+\r
+\r
+//\r
+// ss\r
+//\r
+               SPR_SS_S_1,SPR_SS_S_2,SPR_SS_S_3,SPR_SS_S_4,\r
+               SPR_SS_S_5,SPR_SS_S_6,SPR_SS_S_7,SPR_SS_S_8,\r
+\r
+               SPR_SS_W1_1,SPR_SS_W1_2,SPR_SS_W1_3,SPR_SS_W1_4,\r
+               SPR_SS_W1_5,SPR_SS_W1_6,SPR_SS_W1_7,SPR_SS_W1_8,\r
+\r
+               SPR_SS_W2_1,SPR_SS_W2_2,SPR_SS_W2_3,SPR_SS_W2_4,\r
+               SPR_SS_W2_5,SPR_SS_W2_6,SPR_SS_W2_7,SPR_SS_W2_8,\r
+\r
+               SPR_SS_W3_1,SPR_SS_W3_2,SPR_SS_W3_3,SPR_SS_W3_4,\r
+               SPR_SS_W3_5,SPR_SS_W3_6,SPR_SS_W3_7,SPR_SS_W3_8,\r
+\r
+               SPR_SS_W4_1,SPR_SS_W4_2,SPR_SS_W4_3,SPR_SS_W4_4,\r
+               SPR_SS_W4_5,SPR_SS_W4_6,SPR_SS_W4_7,SPR_SS_W4_8,\r
+\r
+               SPR_SS_PAIN_1,SPR_SS_DIE_1,SPR_SS_DIE_2,SPR_SS_DIE_3,\r
+               SPR_SS_PAIN_2,SPR_SS_DEAD,\r
+\r
+               SPR_SS_SHOOT1,SPR_SS_SHOOT2,SPR_SS_SHOOT3,\r
+\r
+//\r
+// mutant\r
+//\r
+               SPR_MUT_S_1,SPR_MUT_S_2,SPR_MUT_S_3,SPR_MUT_S_4,\r
+               SPR_MUT_S_5,SPR_MUT_S_6,SPR_MUT_S_7,SPR_MUT_S_8,\r
+\r
+               SPR_MUT_W1_1,SPR_MUT_W1_2,SPR_MUT_W1_3,SPR_MUT_W1_4,\r
+               SPR_MUT_W1_5,SPR_MUT_W1_6,SPR_MUT_W1_7,SPR_MUT_W1_8,\r
+\r
+               SPR_MUT_W2_1,SPR_MUT_W2_2,SPR_MUT_W2_3,SPR_MUT_W2_4,\r
+               SPR_MUT_W2_5,SPR_MUT_W2_6,SPR_MUT_W2_7,SPR_MUT_W2_8,\r
+\r
+               SPR_MUT_W3_1,SPR_MUT_W3_2,SPR_MUT_W3_3,SPR_MUT_W3_4,\r
+               SPR_MUT_W3_5,SPR_MUT_W3_6,SPR_MUT_W3_7,SPR_MUT_W3_8,\r
+\r
+               SPR_MUT_W4_1,SPR_MUT_W4_2,SPR_MUT_W4_3,SPR_MUT_W4_4,\r
+               SPR_MUT_W4_5,SPR_MUT_W4_6,SPR_MUT_W4_7,SPR_MUT_W4_8,\r
+\r
+               SPR_MUT_PAIN_1,SPR_MUT_DIE_1,SPR_MUT_DIE_2,SPR_MUT_DIE_3,\r
+               SPR_MUT_PAIN_2,SPR_MUT_DIE_4,SPR_MUT_DEAD,\r
+\r
+               SPR_MUT_SHOOT1,SPR_MUT_SHOOT2,SPR_MUT_SHOOT3,SPR_MUT_SHOOT4,\r
+\r
+//\r
+// officer\r
+//\r
+               SPR_OFC_S_1,SPR_OFC_S_2,SPR_OFC_S_3,SPR_OFC_S_4,\r
+               SPR_OFC_S_5,SPR_OFC_S_6,SPR_OFC_S_7,SPR_OFC_S_8,\r
+\r
+               SPR_OFC_W1_1,SPR_OFC_W1_2,SPR_OFC_W1_3,SPR_OFC_W1_4,\r
+               SPR_OFC_W1_5,SPR_OFC_W1_6,SPR_OFC_W1_7,SPR_OFC_W1_8,\r
+\r
+               SPR_OFC_W2_1,SPR_OFC_W2_2,SPR_OFC_W2_3,SPR_OFC_W2_4,\r
+               SPR_OFC_W2_5,SPR_OFC_W2_6,SPR_OFC_W2_7,SPR_OFC_W2_8,\r
+\r
+               SPR_OFC_W3_1,SPR_OFC_W3_2,SPR_OFC_W3_3,SPR_OFC_W3_4,\r
+               SPR_OFC_W3_5,SPR_OFC_W3_6,SPR_OFC_W3_7,SPR_OFC_W3_8,\r
+\r
+               SPR_OFC_W4_1,SPR_OFC_W4_2,SPR_OFC_W4_3,SPR_OFC_W4_4,\r
+               SPR_OFC_W4_5,SPR_OFC_W4_6,SPR_OFC_W4_7,SPR_OFC_W4_8,\r
+\r
+               SPR_OFC_PAIN_1,SPR_OFC_DIE_1,SPR_OFC_DIE_2,SPR_OFC_DIE_3,\r
+               SPR_OFC_PAIN_2,SPR_OFC_DIE_4,SPR_OFC_DEAD,\r
+\r
+               SPR_OFC_SHOOT1,SPR_OFC_SHOOT2,SPR_OFC_SHOOT3,\r
+\r
+#ifndef SPEAR\r
+//\r
+// ghosts\r
+//\r
+               SPR_BLINKY_W1,SPR_BLINKY_W2,SPR_PINKY_W1,SPR_PINKY_W2,\r
+               SPR_CLYDE_W1,SPR_CLYDE_W2,SPR_INKY_W1,SPR_INKY_W2,\r
+\r
+//\r
+// hans\r
+//\r
+               SPR_BOSS_W1,SPR_BOSS_W2,SPR_BOSS_W3,SPR_BOSS_W4,\r
+               SPR_BOSS_SHOOT1,SPR_BOSS_SHOOT2,SPR_BOSS_SHOOT3,SPR_BOSS_DEAD,\r
+\r
+               SPR_BOSS_DIE1,SPR_BOSS_DIE2,SPR_BOSS_DIE3,\r
+\r
+//\r
+// schabbs\r
+//\r
+               SPR_SCHABB_W1,SPR_SCHABB_W2,SPR_SCHABB_W3,SPR_SCHABB_W4,\r
+               SPR_SCHABB_SHOOT1,SPR_SCHABB_SHOOT2,\r
+\r
+               SPR_SCHABB_DIE1,SPR_SCHABB_DIE2,SPR_SCHABB_DIE3,SPR_SCHABB_DEAD,\r
+               SPR_HYPO1,SPR_HYPO2,SPR_HYPO3,SPR_HYPO4,\r
+\r
+//\r
+// fake\r
+//\r
+               SPR_FAKE_W1,SPR_FAKE_W2,SPR_FAKE_W3,SPR_FAKE_W4,\r
+               SPR_FAKE_SHOOT,SPR_FIRE1,SPR_FIRE2,\r
+\r
+               SPR_FAKE_DIE1,SPR_FAKE_DIE2,SPR_FAKE_DIE3,SPR_FAKE_DIE4,\r
+               SPR_FAKE_DIE5,SPR_FAKE_DEAD,\r
+\r
+//\r
+// hitler\r
+//\r
+               SPR_MECHA_W1,SPR_MECHA_W2,SPR_MECHA_W3,SPR_MECHA_W4,\r
+               SPR_MECHA_SHOOT1,SPR_MECHA_SHOOT2,SPR_MECHA_SHOOT3,SPR_MECHA_DEAD,\r
+\r
+               SPR_MECHA_DIE1,SPR_MECHA_DIE2,SPR_MECHA_DIE3,\r
+\r
+               SPR_HITLER_W1,SPR_HITLER_W2,SPR_HITLER_W3,SPR_HITLER_W4,\r
+               SPR_HITLER_SHOOT1,SPR_HITLER_SHOOT2,SPR_HITLER_SHOOT3,SPR_HITLER_DEAD,\r
+\r
+               SPR_HITLER_DIE1,SPR_HITLER_DIE2,SPR_HITLER_DIE3,SPR_HITLER_DIE4,\r
+               SPR_HITLER_DIE5,SPR_HITLER_DIE6,SPR_HITLER_DIE7,\r
+\r
+//\r
+// giftmacher\r
+//\r
+               SPR_GIFT_W1,SPR_GIFT_W2,SPR_GIFT_W3,SPR_GIFT_W4,\r
+               SPR_GIFT_SHOOT1,SPR_GIFT_SHOOT2,\r
+\r
+               SPR_GIFT_DIE1,SPR_GIFT_DIE2,SPR_GIFT_DIE3,SPR_GIFT_DEAD,\r
+#endif\r
+//\r
+// Rocket, smoke and small explosion\r
+//\r
+               SPR_ROCKET_1,SPR_ROCKET_2,SPR_ROCKET_3,SPR_ROCKET_4,\r
+               SPR_ROCKET_5,SPR_ROCKET_6,SPR_ROCKET_7,SPR_ROCKET_8,\r
+\r
+               SPR_SMOKE_1,SPR_SMOKE_2,SPR_SMOKE_3,SPR_SMOKE_4,\r
+               SPR_BOOM_1,SPR_BOOM_2,SPR_BOOM_3,\r
+\r
+//\r
+// Angel of Death's DeathSparks(tm)\r
+//\r
+#ifdef SPEAR\r
+               SPR_HROCKET_1,SPR_HROCKET_2,SPR_HROCKET_3,SPR_HROCKET_4,\r
+               SPR_HROCKET_5,SPR_HROCKET_6,SPR_HROCKET_7,SPR_HROCKET_8,\r
+\r
+               SPR_HSMOKE_1,SPR_HSMOKE_2,SPR_HSMOKE_3,SPR_HSMOKE_4,\r
+               SPR_HBOOM_1,SPR_HBOOM_2,SPR_HBOOM_3,\r
+\r
+               SPR_SPARK1,SPR_SPARK2,SPR_SPARK3,SPR_SPARK4,\r
+#endif\r
+\r
+#ifndef SPEAR\r
+//\r
+// gretel\r
+//\r
+               SPR_GRETEL_W1,SPR_GRETEL_W2,SPR_GRETEL_W3,SPR_GRETEL_W4,\r
+               SPR_GRETEL_SHOOT1,SPR_GRETEL_SHOOT2,SPR_GRETEL_SHOOT3,SPR_GRETEL_DEAD,\r
+\r
+               SPR_GRETEL_DIE1,SPR_GRETEL_DIE2,SPR_GRETEL_DIE3,\r
+\r
+//\r
+// fat face\r
+//\r
+               SPR_FAT_W1,SPR_FAT_W2,SPR_FAT_W3,SPR_FAT_W4,\r
+               SPR_FAT_SHOOT1,SPR_FAT_SHOOT2,SPR_FAT_SHOOT3,SPR_FAT_SHOOT4,\r
+\r
+               SPR_FAT_DIE1,SPR_FAT_DIE2,SPR_FAT_DIE3,SPR_FAT_DEAD,\r
+\r
+//\r
+// bj\r
+//\r
+               SPR_BJ_W1,SPR_BJ_W2,SPR_BJ_W3,SPR_BJ_W4,\r
+               SPR_BJ_JUMP1,SPR_BJ_JUMP2,SPR_BJ_JUMP3,SPR_BJ_JUMP4,\r
+#else\r
+//\r
+// THESE ARE FOR 'SPEAR OF DESTINY'\r
+//\r
+\r
+//\r
+// Trans Grosse\r
+//\r
+               SPR_TRANS_W1,SPR_TRANS_W2,SPR_TRANS_W3,SPR_TRANS_W4,\r
+               SPR_TRANS_SHOOT1,SPR_TRANS_SHOOT2,SPR_TRANS_SHOOT3,SPR_TRANS_DEAD,\r
+\r
+               SPR_TRANS_DIE1,SPR_TRANS_DIE2,SPR_TRANS_DIE3,\r
+\r
+//\r
+// Wilhelm\r
+//\r
+               SPR_WILL_W1,SPR_WILL_W2,SPR_WILL_W3,SPR_WILL_W4,\r
+               SPR_WILL_SHOOT1,SPR_WILL_SHOOT2,SPR_WILL_SHOOT3,SPR_WILL_SHOOT4,\r
+\r
+               SPR_WILL_DIE1,SPR_WILL_DIE2,SPR_WILL_DIE3,SPR_WILL_DEAD,\r
+\r
+//\r
+// UberMutant\r
+//\r
+               SPR_UBER_W1,SPR_UBER_W2,SPR_UBER_W3,SPR_UBER_W4,\r
+               SPR_UBER_SHOOT1,SPR_UBER_SHOOT2,SPR_UBER_SHOOT3,SPR_UBER_SHOOT4,\r
+\r
+               SPR_UBER_DIE1,SPR_UBER_DIE2,SPR_UBER_DIE3,SPR_UBER_DIE4,\r
+               SPR_UBER_DEAD,\r
+\r
+//\r
+// Death Knight\r
+//\r
+               SPR_DEATH_W1,SPR_DEATH_W2,SPR_DEATH_W3,SPR_DEATH_W4,\r
+               SPR_DEATH_SHOOT1,SPR_DEATH_SHOOT2,SPR_DEATH_SHOOT3,SPR_DEATH_SHOOT4,\r
+\r
+               SPR_DEATH_DIE1,SPR_DEATH_DIE2,SPR_DEATH_DIE3,SPR_DEATH_DIE4,\r
+               SPR_DEATH_DIE5,SPR_DEATH_DIE6,SPR_DEATH_DEAD,\r
+\r
+//\r
+// Ghost\r
+//\r
+               SPR_SPECTRE_W1,SPR_SPECTRE_W2,SPR_SPECTRE_W3,SPR_SPECTRE_W4,\r
+               SPR_SPECTRE_F1,SPR_SPECTRE_F2,SPR_SPECTRE_F3,SPR_SPECTRE_F4,\r
+\r
+//\r
+// Angel of Death\r
+//\r
+               SPR_ANGEL_W1,SPR_ANGEL_W2,SPR_ANGEL_W3,SPR_ANGEL_W4,\r
+               SPR_ANGEL_SHOOT1,SPR_ANGEL_SHOOT2,SPR_ANGEL_TIRED1,SPR_ANGEL_TIRED2,\r
+\r
+               SPR_ANGEL_DIE1,SPR_ANGEL_DIE2,SPR_ANGEL_DIE3,SPR_ANGEL_DIE4,\r
+               SPR_ANGEL_DIE5,SPR_ANGEL_DIE6,SPR_ANGEL_DIE7,SPR_ANGEL_DEAD,\r
+\r
+#endif\r
+\r
+//\r
+// player attack frames\r
+//\r
+               SPR_KNIFEREADY,SPR_KNIFEATK1,SPR_KNIFEATK2,SPR_KNIFEATK3,\r
+               SPR_KNIFEATK4,\r
+\r
+               SPR_PISTOLREADY,SPR_PISTOLATK1,SPR_PISTOLATK2,SPR_PISTOLATK3,\r
+               SPR_PISTOLATK4,\r
+\r
+               SPR_MACHINEGUNREADY,SPR_MACHINEGUNATK1,SPR_MACHINEGUNATK2,MACHINEGUNATK3,\r
+               SPR_MACHINEGUNATK4,\r
+\r
+               SPR_CHAINREADY,SPR_CHAINATK1,SPR_CHAINATK2,SPR_CHAINATK3,\r
+               SPR_CHAINATK4,\r
+\r
+               };\r
+\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                  GLOBAL TYPES\r
+\r
+=============================================================================\r
+*/\r
+\r
+typedef long fixed;\r
+\r
+typedef enum {\r
+       di_north,\r
+       di_east,\r
+       di_south,\r
+       di_west\r
+} controldir_t;\r
+\r
+typedef enum {\r
+       dr_normal,\r
+       dr_lock1,\r
+       dr_lock2,\r
+       dr_lock3,\r
+       dr_lock4,\r
+       dr_elevator\r
+} door_t;\r
+\r
+typedef enum {\r
+       ac_badobject = -1,\r
+       ac_no,\r
+       ac_yes,\r
+       ac_allways\r
+} activetype;\r
+\r
+typedef enum {\r
+       nothing,\r
+       playerobj,\r
+       inertobj,\r
+       guardobj,\r
+       officerobj,\r
+       ssobj,\r
+       dogobj,\r
+       bossobj,\r
+       schabbobj,\r
+       fakeobj,\r
+       mechahitlerobj,\r
+       mutantobj,\r
+       needleobj,\r
+       fireobj,\r
+       bjobj,\r
+       ghostobj,\r
+       realhitlerobj,\r
+       gretelobj,\r
+       giftobj,\r
+       fatobj,\r
+       rocketobj,\r
+\r
+       spectreobj,\r
+       angelobj,\r
+       transobj,\r
+       uberobj,\r
+       willobj,\r
+       deathobj,\r
+       hrocketobj,\r
+       sparkobj\r
+} classtype;\r
+\r
+typedef enum {\r
+       dressing,\r
+       block,\r
+       bo_gibs,\r
+       bo_alpo,\r
+       bo_firstaid,\r
+       bo_key1,\r
+       bo_key2,\r
+       bo_key3,\r
+       bo_key4,\r
+       bo_cross,\r
+       bo_chalice,\r
+       bo_bible,\r
+       bo_crown,\r
+       bo_clip,\r
+       bo_clip2,\r
+       bo_machinegun,\r
+       bo_chaingun,\r
+       bo_food,\r
+       bo_fullheal,\r
+       bo_25clip,\r
+       bo_spear\r
+} stat_t;\r
+\r
+typedef enum {\r
+       east,\r
+       northeast,\r
+       north,\r
+       northwest,\r
+       west,\r
+       southwest,\r
+       south,\r
+       southeast,\r
+       nodir\r
+} dirtype;\r
+\r
+\r
+#define NUMENEMIES             22\r
+typedef enum {\r
+       en_guard,\r
+       en_officer,\r
+       en_ss,\r
+       en_dog,\r
+       en_boss,\r
+       en_schabbs,\r
+       en_fake,\r
+       en_hitler,\r
+       en_mutant,\r
+       en_blinky,\r
+       en_clyde,\r
+       en_pinky,\r
+       en_inky,\r
+       en_gretel,\r
+       en_gift,\r
+       en_fat,\r
+       en_spectre,\r
+       en_angel,\r
+       en_trans,\r
+       en_uber,\r
+       en_will,\r
+       en_death\r
+} enemy_t;\r
+\r
+\r
+typedef struct statestruct\r
+{\r
+       boolean rotate;\r
+       int             shapenum;                       // a shapenum of -1 means get from ob->temp1\r
+       int             tictime;\r
+       void    (*think) (),(*action) ();\r
+       struct  statestruct     *next;\r
+} statetype;\r
+\r
+\r
+//---------------------\r
+//\r
+// trivial actor structure\r
+//\r
+//---------------------\r
+\r
+typedef struct statstruct\r
+{\r
+       byte    tilex,tiley;\r
+       byte    *visspot;\r
+       int             shapenum;                       // if shapenum == -1 the obj has been removed\r
+       byte    flags;\r
+       byte    itemnumber;\r
+} statobj_t;\r
+\r
+\r
+//---------------------\r
+//\r
+// door actor structure\r
+//\r
+//---------------------\r
+\r
+typedef struct doorstruct\r
+{\r
+       byte    tilex,tiley;\r
+       boolean vertical;\r
+       byte    lock;\r
+       enum    {dr_open,dr_closed,dr_opening,dr_closing}       action;\r
+       int             ticcount;\r
+} doorobj_t;\r
+\r
+\r
+//--------------------\r
+//\r
+// thinking actor structure\r
+//\r
+//--------------------\r
+\r
+typedef struct objstruct\r
+{\r
+       activetype      active;\r
+       int                     ticcount;\r
+       classtype       obclass;\r
+       statetype       *state;\r
+\r
+       byte            flags;                          //      FL_SHOOTABLE, etc\r
+\r
+       long            distance;                       // if negative, wait for that door to open\r
+       dirtype         dir;\r
+\r
+       fixed           x,y;\r
+       unsigned        tilex,tiley;\r
+       byte            areanumber;\r
+\r
+       int                     viewx;\r
+       unsigned        viewheight;\r
+       fixed           transx,transy;          // in global coord\r
+\r
+       int             angle;\r
+       int                     hitpoints;\r
+       long            speed;\r
+\r
+       int                     temp1,temp2,temp3;\r
+       struct          objstruct       *next,*prev;\r
+} objtype;\r
+\r
+\r
+#define NUMBUTTONS     8\r
+enum   {\r
+       bt_nobutton=-1,\r
+       bt_attack=0,\r
+       bt_strafe,\r
+       bt_run,\r
+       bt_use,\r
+       bt_readyknife,\r
+       bt_readypistol,\r
+       bt_readymachinegun,\r
+       bt_readychaingun\r
+};\r
+\r
+\r
+#define NUMWEAPONS     5\r
+typedef enum   {\r
+       wp_knife,\r
+       wp_pistol,\r
+       wp_machinegun,\r
+       wp_chaingun\r
+} weapontype;\r
+\r
+\r
+typedef enum   {\r
+       gd_baby,\r
+       gd_easy,\r
+       gd_medium,\r
+       gd_hard\r
+};\r
+\r
+//---------------\r
+//\r
+// gamestate structure\r
+//\r
+//---------------\r
+\r
+typedef        struct\r
+{\r
+       int                     difficulty;\r
+       int                     mapon;\r
+       long            oldscore,score,nextextra;\r
+       int                     lives;\r
+       int                     health;\r
+       int                     ammo;\r
+       int                     keys;\r
+       weapontype              bestweapon,weapon,chosenweapon;\r
+\r
+       int                     faceframe;\r
+       int                     attackframe,attackcount,weaponframe;\r
+\r
+       int                     episode,secretcount,treasurecount,killcount,\r
+                               secrettotal,treasuretotal,killtotal;\r
+       long            TimeCount;\r
+       long            killx,killy;\r
+       boolean         victoryflag;            // set during victory animations\r
+} gametype;\r
+\r
+\r
+typedef        enum    {\r
+       ex_stillplaying,\r
+       ex_completed,\r
+       ex_died,\r
+       ex_warped,\r
+       ex_resetgame,\r
+       ex_loadedgame,\r
+       ex_victorious,\r
+       ex_abort,\r
+       ex_demodone,\r
+       ex_secretlevel\r
+} exit_t;\r
+\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_MAIN DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern boolean         MS_CheckParm (char far *string);\r
+\r
+extern char            str[80],str2[20];\r
+extern int                     tedlevelnum;\r
+extern boolean         tedlevel;\r
+extern boolean         nospr;\r
+extern boolean         IsA386;\r
+\r
+extern byte far        *scalermemory;\r
+\r
+extern fixed           focallength;\r
+extern unsigned        viewangles;\r
+extern unsigned        screenofs;\r
+extern int                 viewwidth;\r
+extern int                     viewheight;\r
+extern int                     centerx;\r
+extern int                     shootdelta;\r
+\r
+extern int                     dirangle[9];\r
+\r
+extern boolean         startgame,loadedgame,virtualreality;\r
+extern int             mouseadjustment;\r
+//\r
+// math tables\r
+//\r
+extern int                     pixelangle[MAXVIEWWIDTH];\r
+extern long            far finetangent[FINEANGLES/4];\r
+extern fixed           far sintable[],far *costable;\r
+\r
+//\r
+// derived constants\r
+//\r
+extern fixed   scale,maxslope;\r
+extern long    heightnumerator;\r
+extern int             minheightdiv;\r
+\r
+extern char    configname[13];\r
+\r
+\r
+\r
+void           HelpScreens (void);\r
+void           OrderingInfo (void);\r
+void           TEDDeath(void);\r
+void           Quit (char *error);\r
+void           CalcProjection (long focal);\r
+boolean                SetViewSize (unsigned width, unsigned height);\r
+void           NewGame (int difficulty,int episode);\r
+void           NewViewSize (int width);\r
+boolean        LoadTheGame(int file,int x,int y);\r
+boolean                SaveTheGame(int file,int x,int y);\r
+void           ShowViewSize (int width);\r
+void           ShutdownId (void);\r
+\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_GAME DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+\r
+extern boolean         ingame,fizzlein;\r
+extern unsigned        latchpics[NUMLATCHPICS];\r
+extern gametype        gamestate;\r
+extern int                     doornum;\r
+\r
+extern char            demoname[13];\r
+\r
+extern long            spearx,speary;\r
+extern unsigned        spearangle;\r
+extern boolean         spearflag;\r
+\r
+\r
+void   DrawPlayBorder (void);\r
+void   ScanInfoPlane (void);\r
+void   SetupGameLevel (void);\r
+void   NormalScreen (void);\r
+void   DrawPlayScreen (void);\r
+void   FizzleOut (void);\r
+void   GameLoop (void);\r
+void ClearMemory (void);\r
+void PlayDemo (int demonumber);\r
+void RecordDemo (void);\r
+void DrawAllPlayBorder (void);\r
+void   DrawHighScores(void);\r
+void DrawAllPlayBorderSides (void);\r
+\r
+\r
+// JAB\r
+#define        PlaySoundLocTile(s,tx,ty)       PlaySoundLocGlobal(s,(((long)(tx) << TILESHIFT) + (1L << (TILESHIFT - 1))),(((long)ty << TILESHIFT) + (1L << (TILESHIFT - 1))))\r
+#define        PlaySoundLocActor(s,ob)         PlaySoundLocGlobal(s,(ob)->x,(ob)->y)\r
+void   PlaySoundLocGlobal(word s,fixed gx,fixed gy);\r
+void UpdateSoundLoc(void);\r
+\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_PLAY DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+#ifdef SPEAR\r
+extern long            funnyticount;           // FOR FUNNY BJ FACE\r
+#endif\r
+\r
+extern exit_t          playstate;\r
+\r
+extern boolean         madenoise;\r
+\r
+extern objtype         objlist[MAXACTORS],*new,*obj,*player,*lastobj,\r
+                                       *objfreelist,*killerobj;\r
+extern statobj_t       statobjlist[MAXSTATS],*laststatobj;\r
+extern doorobj_t       doorobjlist[MAXDOORS],*lastdoorobj;\r
+\r
+extern unsigned        farmapylookup[MAPSIZE];\r
+extern byte            *nearmapylookup[MAPSIZE];\r
+\r
+extern byte            tilemap[MAPSIZE][MAPSIZE];      // wall values only\r
+extern byte            spotvis[MAPSIZE][MAPSIZE];\r
+extern objtype         *actorat[MAPSIZE][MAPSIZE];\r
+\r
+#define UPDATESIZE                     (UPDATEWIDE*UPDATEHIGH)\r
+extern byte            update[UPDATESIZE];\r
+\r
+extern boolean         singlestep,godmode,noclip;\r
+extern int                     extravbls;\r
+\r
+//\r
+// control info\r
+//\r
+extern boolean         mouseenabled,joystickenabled,joypadenabled,joystickprogressive;\r
+extern int                     joystickport;\r
+extern int                     dirscan[4];\r
+extern int                     buttonscan[NUMBUTTONS];\r
+extern int                     buttonmouse[4];\r
+extern int                     buttonjoy[4];\r
+\r
+extern boolean         buttonheld[NUMBUTTONS];\r
+\r
+extern int                     viewsize;\r
+\r
+//\r
+// curent user input\r
+//\r
+extern int                     controlx,controly;              // range from -100 to 100\r
+extern boolean         buttonstate[NUMBUTTONS];\r
+\r
+extern boolean         demorecord,demoplayback;\r
+extern char            far *demoptr, far *lastdemoptr;\r
+extern memptr          demobuffer;\r
+\r
+\r
+\r
+void   InitRedShifts (void);\r
+void   FinishPaletteShifts (void);\r
+\r
+void   CenterWindow(word w,word h);\r
+void   InitActorList (void);\r
+void   GetNewActor (void);\r
+void   RemoveObj (objtype *gone);\r
+void   PollControls (void);\r
+void   StopMusic(void);\r
+void   StartMusic(void);\r
+void   PlayLoop (void);\r
+void StartDamageFlash (int damage);\r
+void StartBonusFlash (void);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                       WL_INTER\r
+\r
+=============================================================================\r
+*/\r
+\r
+void IntroScreen (void);\r
+void PreloadGraphics(void);\r
+void LevelCompleted (void);\r
+void   CheckHighScore (long score,word other);\r
+void Victory (void);\r
+void ClearSplitVWB (void);\r
+\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                       WL_DEBUG\r
+\r
+=============================================================================\r
+*/\r
+\r
+int DebugKeys (void);\r
+void PicturePause (void);\r
+\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_DRAW DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern unsigned screenloc[3];\r
+extern unsigned freelatch;\r
+\r
+extern long    lasttimecount;\r
+extern long    frameon;\r
+extern boolean fizzlein;\r
+\r
+extern unsigned        wallheight[MAXVIEWWIDTH];\r
+\r
+extern fixed   tileglobal;\r
+extern fixed   focallength;\r
+extern fixed   mindist;\r
+\r
+//\r
+// math tables\r
+//\r
+extern int                     pixelangle[MAXVIEWWIDTH];\r
+extern long            far finetangent[FINEANGLES/4];\r
+extern fixed           far sintable[],far *costable;\r
+\r
+//\r
+// derived constants\r
+//\r
+extern fixed   scale;\r
+extern long    heightnumerator,mindist;\r
+\r
+//\r
+// refresh variables\r
+//\r
+extern fixed   viewx,viewy;                    // the focal point\r
+extern int             viewangle;\r
+extern fixed   viewsin,viewcos;\r
+\r
+extern long            postsource;\r
+extern unsigned        postx;\r
+extern unsigned        postwidth;\r
+\r
+\r
+extern int             horizwall[],vertwall[];\r
+\r
+extern unsigned        pwallpos;\r
+\r
+\r
+fixed  FixedByFrac (fixed a, fixed b);\r
+void   TransformActor (objtype *ob);\r
+void   BuildTables (void);\r
+void   ClearScreen (void);\r
+int            CalcRotate (objtype *ob);\r
+void   DrawScaleds (void);\r
+void   CalcTics (void);\r
+void   FixOfs (void);\r
+void   ThreeDRefresh (void);\r
+void  FarScalePost (void);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_STATE DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+#define TURNTICS       10\r
+#define SPDPATROL      512\r
+#define SPDDOG         1500\r
+\r
+\r
+extern dirtype opposite[9];\r
+extern dirtype diagonal[9][9];\r
+\r
+\r
+void   InitHitRect (objtype *ob, unsigned radius);\r
+void   SpawnNewObj (unsigned tilex, unsigned tiley, statetype *state);\r
+void   NewState (objtype *ob, statetype *state);\r
+\r
+boolean TryWalk (objtype *ob);\r
+void   SelectChaseDir (objtype *ob);\r
+void   SelectDodgeDir (objtype *ob);\r
+void   SelectRunDir (objtype *ob);\r
+void   MoveObj (objtype *ob, long move);\r
+boolean SightPlayer (objtype *ob);\r
+\r
+void   KillActor (objtype *ob);\r
+void   DamageActor (objtype *ob, unsigned damage);\r
+\r
+boolean CheckLine (objtype *ob);\r
+boolean        CheckSight (objtype *ob);\r
+\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_SCALE DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+\r
+#define COMPSCALECODESTART     (65*4)          // offset to start of code in comp scaler\r
+\r
+typedef struct\r
+{\r
+       unsigned        codeofs[65];\r
+       unsigned        width[65];\r
+       byte            code[];\r
+}      t_compscale;\r
+\r
+typedef struct\r
+{\r
+       unsigned        leftpix,rightpix;\r
+       unsigned        dataofs[64];\r
+// table data after dataofs[rightpix-leftpix+1]\r
+}      t_compshape;\r
+\r
+\r
+extern t_compscale _seg *scaledirectory[MAXSCALEHEIGHT+1];\r
+extern long                    fullscalefarcall[MAXSCALEHEIGHT+1];\r
+\r
+extern byte            bitmasks1[8][8];\r
+extern byte            bitmasks2[8][8];\r
+extern unsigned        wordmasks[8][8];\r
+\r
+extern byte            mapmasks1[4][8];\r
+extern byte            mapmasks2[4][8];\r
+extern byte            mapmasks3[4][8];\r
+\r
+extern int                     maxscale,maxscaleshl2;\r
+\r
+extern boolean insetupscaling;\r
+\r
+void SetupScaling (int maxscaleheight);\r
+void ScaleShape (int xcenter, int shapenum, unsigned height);\r
+void SimpleScaleShape (int xcenter, int shapenum, unsigned height);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_AGENT DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+//\r
+// player state info\r
+//\r
+extern boolean         running;\r
+extern long            thrustspeed;\r
+extern unsigned        plux,pluy;              // player coordinates scaled to unsigned\r
+\r
+extern int                     anglefrac;\r
+extern int                     facecount;\r
+\r
+void   SpawnPlayer (int tilex, int tiley, int dir);\r
+void   DrawFace (void);\r
+void   DrawHealth (void);\r
+void   TakeDamage (int points,objtype *attacker);\r
+void   HealSelf (int points);\r
+void   DrawLevel (void);\r
+void   DrawLives (void);\r
+void   GiveExtraMan (void);\r
+void   DrawScore (void);\r
+void   GivePoints (long points);\r
+void   DrawWeapon (void);\r
+void   DrawKeys (void);\r
+void   GiveWeapon (int weapon);\r
+void   DrawAmmo (void);\r
+void   GiveAmmo (int ammo);\r
+void   GiveKey (int key);\r
+void   GetBonus (statobj_t *check);\r
+\r
+void   Thrust (int angle, long speed);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_ACT1 DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern doorobj_t       doorobjlist[MAXDOORS],*lastdoorobj;\r
+extern int                     doornum;\r
+\r
+extern unsigned        doorposition[MAXDOORS],pwallstate;\r
+\r
+extern byte            far areaconnect[NUMAREAS][NUMAREAS];\r
+\r
+extern boolean         areabyplayer[NUMAREAS];\r
+\r
+extern unsigned        pwallstate;\r
+extern unsigned        pwallpos;                       // amount a pushable wall has been moved (0-63)\r
+extern unsigned        pwallx,pwally;\r
+extern int                     pwalldir;\r
+\r
+\r
+void InitDoorList (void);\r
+void InitStaticList (void);\r
+void SpawnStatic (int tilex, int tiley, int type);\r
+void SpawnDoor (int tilex, int tiley, boolean vertical, int lock);\r
+void MoveDoors (void);\r
+void MovePWalls (void);\r
+void OpenDoor (int door);\r
+void PlaceItemType (int itemtype, int tilex, int tiley);\r
+void PushWall (int checkx, int checky, int dir);\r
+void OperateDoor (int door);\r
+void InitAreas (void);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_ACT2 DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+#define s_nakedbody s_static10\r
+\r
+extern statetype s_grddie1;\r
+extern statetype s_dogdie1;\r
+extern statetype s_ofcdie1;\r
+extern statetype s_mutdie1;\r
+extern statetype s_ssdie1;\r
+extern statetype s_bossdie1;\r
+extern statetype s_schabbdie1;\r
+extern statetype s_fakedie1;\r
+extern statetype s_mechadie1;\r
+extern statetype s_hitlerdie1;\r
+extern statetype s_greteldie1;\r
+extern statetype s_giftdie1;\r
+extern statetype s_fatdie1;\r
+\r
+extern statetype s_spectredie1;\r
+extern statetype s_angeldie1;\r
+extern statetype s_transdie0;\r
+extern statetype s_uberdie0;\r
+extern statetype s_willdie1;\r
+extern statetype s_deathdie1;\r
+\r
+\r
+extern statetype s_grdchase1;\r
+extern statetype s_dogchase1;\r
+extern statetype s_ofcchase1;\r
+extern statetype s_sschase1;\r
+extern statetype s_mutchase1;\r
+extern statetype s_bosschase1;\r
+extern statetype s_schabbchase1;\r
+extern statetype s_fakechase1;\r
+extern statetype s_mechachase1;\r
+extern statetype s_gretelchase1;\r
+extern statetype s_giftchase1;\r
+extern statetype s_fatchase1;\r
+\r
+extern statetype s_spectrechase1;\r
+extern statetype s_angelchase1;\r
+extern statetype s_transchase1;\r
+extern statetype s_uberchase1;\r
+extern statetype s_willchase1;\r
+extern statetype s_deathchase1;\r
+\r
+extern statetype s_blinkychase1;\r
+extern statetype s_hitlerchase1;\r
+\r
+extern statetype s_grdpain;\r
+extern statetype s_grdpain1;\r
+extern statetype s_ofcpain;\r
+extern statetype s_ofcpain1;\r
+extern statetype s_sspain;\r
+extern statetype s_sspain1;\r
+extern statetype s_mutpain;\r
+extern statetype s_mutpain1;\r
+\r
+extern statetype s_deathcam;\r
+\r
+extern statetype s_schabbdeathcam2;\r
+extern statetype s_hitlerdeathcam2;\r
+extern statetype s_giftdeathcam2;\r
+extern statetype s_fatdeathcam2;\r
+\r
+void SpawnStand (enemy_t which, int tilex, int tiley, int dir);\r
+void SpawnPatrol (enemy_t which, int tilex, int tiley, int dir);\r
+void KillActor (objtype *ob);\r
+\r
+void   US_ControlPanel(byte);\r
+\r
+void SpawnDeadGuard (int tilex, int tiley);\r
+void SpawnBoss (int tilex, int tiley);\r
+void SpawnGretel (int tilex, int tiley);\r
+void SpawnTrans (int tilex, int tiley);\r
+void SpawnUber (int tilex, int tiley);\r
+void SpawnWill (int tilex, int tiley);\r
+void SpawnDeath (int tilex, int tiley);\r
+void SpawnAngel (int tilex, int tiley);\r
+void SpawnSpectre (int tilex, int tiley);\r
+void SpawnGhosts (int which, int tilex, int tiley);\r
+void SpawnSchabbs (int tilex, int tiley);\r
+void SpawnGift (int tilex, int tiley);\r
+void SpawnFat (int tilex, int tiley);\r
+void SpawnFakeHitler (int tilex, int tiley);\r
+void SpawnHitler (int tilex, int tiley);\r
+\r
+/*\r
+=============================================================================\r
+\r
+                                                WL_TEXT DEFINITIONS\r
+\r
+=============================================================================\r
+*/\r
+\r
+extern char    helpfilename[],endfilename[];\r
+\r
+extern void    HelpScreens(void);\r
+extern void    EndText(void);\r