From fe6509a8ad722239c7038fccb768a695fe032e07 Mon Sep 17 00:00:00 2001 From: Fabian Greffrath Date: Wed, 12 Aug 2020 08:34:19 +0200 Subject: [PATCH 1/2] turn sprite "constants" into variables and assign values at run-time --- Makefile | 1 + sprites.cpp | 1190 ++++++++++++++++++++++++++++++++++++++++++++++++++ sprites.h | 560 ++++++++++++++++++++++++ states.cpp | 884 ++++++++++++++++++------------------- wl_act1.cpp | 124 +++--- wl_agent.cpp | 2 +- wl_debug.cpp | 2 +- wl_def.h | 327 +------------- wl_draw.cpp | 23 +- wl_game.cpp | 1 + 10 files changed, 2274 insertions(+), 840 deletions(-) create mode 100644 sprites.cpp create mode 100644 sprites.h diff --git a/Makefile b/Makefile index 2a6802f..7584dd0 100644 --- a/Makefile +++ b/Makefile @@ -67,6 +67,7 @@ SRCS += wl_play.cpp SRCS += wl_state.cpp SRCS += wl_text.cpp SRCS += states.cpp +SRCS += sprites.cpp DEPS = $(filter %.d, $(SRCS:.c=.d) $(SRCS:.cpp=.d)) OBJS = $(filter %.o, $(SRCS:.c=.o) $(SRCS:.cpp=.o)) diff --git a/sprites.cpp b/sprites.cpp new file mode 100644 index 0000000..a4e4733 --- /dev/null +++ b/sprites.cpp @@ -0,0 +1,1190 @@ +// +// Copyright(C) 1992 Id Software, Inc. +// Copyright(C) 2007-2011 Moritz "Ripper" Kroll +// Copyright(C) 2020 Fabian Greffrath +// +// 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. +// +// DESCRIPTION: +// Turn sprite "constants" into variables and assign values at run-time. +// + +#include "sprites.h" +#include "version.h" + +short SPR_DEMO = -1; +short SPR_DEATHCAM = -1; +short SPR_STAT_0 = -1; +short SPR_STAT_1 = -1; +short SPR_STAT_2 = -1; +short SPR_STAT_3 = -1; +short SPR_STAT_4 = -1; +short SPR_STAT_5 = -1; +short SPR_STAT_6 = -1; +short SPR_STAT_7 = -1; +short SPR_STAT_8 = -1; +short SPR_STAT_9 = -1; +short SPR_STAT_10 = -1; +short SPR_STAT_11 = -1; +short SPR_STAT_12 = -1; +short SPR_STAT_13 = -1; +short SPR_STAT_14 = -1; +short SPR_STAT_15 = -1; +short SPR_STAT_16 = -1; +short SPR_STAT_17 = -1; +short SPR_STAT_18 = -1; +short SPR_STAT_19 = -1; +short SPR_STAT_20 = -1; +short SPR_STAT_21 = -1; +short SPR_STAT_22 = -1; +short SPR_STAT_23 = -1; +short SPR_STAT_24 = -1; +short SPR_STAT_25 = -1; +short SPR_STAT_26 = -1; +short SPR_STAT_27 = -1; +short SPR_STAT_28 = -1; +short SPR_STAT_29 = -1; +short SPR_STAT_30 = -1; +short SPR_STAT_31 = -1; +short SPR_STAT_32 = -1; +short SPR_STAT_33 = -1; +short SPR_STAT_34 = -1; +short SPR_STAT_35 = -1; +short SPR_STAT_36 = -1; +short SPR_STAT_37 = -1; +short SPR_STAT_38 = -1; +short SPR_STAT_39 = -1; +short SPR_STAT_40 = -1; +short SPR_STAT_41 = -1; +short SPR_STAT_42 = -1; +short SPR_STAT_43 = -1; +short SPR_STAT_44 = -1; +short SPR_STAT_45 = -1; +short SPR_STAT_46 = -1; +short SPR_STAT_47 = -1; +short SPR_STAT_48 = -1; +short SPR_STAT_49 = -1; +short SPR_STAT_50 = -1; +short SPR_STAT_51 = -1; +short SPR_GRD_S_1 = -1; +short SPR_GRD_S_2 = -1; +short SPR_GRD_S_3 = -1; +short SPR_GRD_S_4 = -1; +short SPR_GRD_S_5 = -1; +short SPR_GRD_S_6 = -1; +short SPR_GRD_S_7 = -1; +short SPR_GRD_S_8 = -1; +short SPR_GRD_W1_1 = -1; +short SPR_GRD_W1_2 = -1; +short SPR_GRD_W1_3 = -1; +short SPR_GRD_W1_4 = -1; +short SPR_GRD_W1_5 = -1; +short SPR_GRD_W1_6 = -1; +short SPR_GRD_W1_7 = -1; +short SPR_GRD_W1_8 = -1; +short SPR_GRD_W2_1 = -1; +short SPR_GRD_W2_2 = -1; +short SPR_GRD_W2_3 = -1; +short SPR_GRD_W2_4 = -1; +short SPR_GRD_W2_5 = -1; +short SPR_GRD_W2_6 = -1; +short SPR_GRD_W2_7 = -1; +short SPR_GRD_W2_8 = -1; +short SPR_GRD_W3_1 = -1; +short SPR_GRD_W3_2 = -1; +short SPR_GRD_W3_3 = -1; +short SPR_GRD_W3_4 = -1; +short SPR_GRD_W3_5 = -1; +short SPR_GRD_W3_6 = -1; +short SPR_GRD_W3_7 = -1; +short SPR_GRD_W3_8 = -1; +short SPR_GRD_W4_1 = -1; +short SPR_GRD_W4_2 = -1; +short SPR_GRD_W4_3 = -1; +short SPR_GRD_W4_4 = -1; +short SPR_GRD_W4_5 = -1; +short SPR_GRD_W4_6 = -1; +short SPR_GRD_W4_7 = -1; +short SPR_GRD_W4_8 = -1; +short SPR_GRD_PAIN_1 = -1; +short SPR_GRD_DIE_1 = -1; +short SPR_GRD_DIE_2 = -1; +short SPR_GRD_DIE_3 = -1; +short SPR_GRD_PAIN_2 = -1; +short SPR_GRD_DEAD = -1; +short SPR_GRD_SHOOT1 = -1; +short SPR_GRD_SHOOT2 = -1; +short SPR_GRD_SHOOT3 = -1; +short SPR_DOG_W1_1 = -1; +short SPR_DOG_W1_2 = -1; +short SPR_DOG_W1_3 = -1; +short SPR_DOG_W1_4 = -1; +short SPR_DOG_W1_5 = -1; +short SPR_DOG_W1_6 = -1; +short SPR_DOG_W1_7 = -1; +short SPR_DOG_W1_8 = -1; +short SPR_DOG_W2_1 = -1; +short SPR_DOG_W2_2 = -1; +short SPR_DOG_W2_3 = -1; +short SPR_DOG_W2_4 = -1; +short SPR_DOG_W2_5 = -1; +short SPR_DOG_W2_6 = -1; +short SPR_DOG_W2_7 = -1; +short SPR_DOG_W2_8 = -1; +short SPR_DOG_W3_1 = -1; +short SPR_DOG_W3_2 = -1; +short SPR_DOG_W3_3 = -1; +short SPR_DOG_W3_4 = -1; +short SPR_DOG_W3_5 = -1; +short SPR_DOG_W3_6 = -1; +short SPR_DOG_W3_7 = -1; +short SPR_DOG_W3_8 = -1; +short SPR_DOG_W4_1 = -1; +short SPR_DOG_W4_2 = -1; +short SPR_DOG_W4_3 = -1; +short SPR_DOG_W4_4 = -1; +short SPR_DOG_W4_5 = -1; +short SPR_DOG_W4_6 = -1; +short SPR_DOG_W4_7 = -1; +short SPR_DOG_W4_8 = -1; +short SPR_DOG_DIE_1 = -1; +short SPR_DOG_DIE_2 = -1; +short SPR_DOG_DIE_3 = -1; +short SPR_DOG_DEAD = -1; +short SPR_DOG_JUMP1 = -1; +short SPR_DOG_JUMP2 = -1; +short SPR_DOG_JUMP3 = -1; +short SPR_SS_S_1 = -1; +short SPR_SS_S_2 = -1; +short SPR_SS_S_3 = -1; +short SPR_SS_S_4 = -1; +short SPR_SS_S_5 = -1; +short SPR_SS_S_6 = -1; +short SPR_SS_S_7 = -1; +short SPR_SS_S_8 = -1; +short SPR_SS_W1_1 = -1; +short SPR_SS_W1_2 = -1; +short SPR_SS_W1_3 = -1; +short SPR_SS_W1_4 = -1; +short SPR_SS_W1_5 = -1; +short SPR_SS_W1_6 = -1; +short SPR_SS_W1_7 = -1; +short SPR_SS_W1_8 = -1; +short SPR_SS_W2_1 = -1; +short SPR_SS_W2_2 = -1; +short SPR_SS_W2_3 = -1; +short SPR_SS_W2_4 = -1; +short SPR_SS_W2_5 = -1; +short SPR_SS_W2_6 = -1; +short SPR_SS_W2_7 = -1; +short SPR_SS_W2_8 = -1; +short SPR_SS_W3_1 = -1; +short SPR_SS_W3_2 = -1; +short SPR_SS_W3_3 = -1; +short SPR_SS_W3_4 = -1; +short SPR_SS_W3_5 = -1; +short SPR_SS_W3_6 = -1; +short SPR_SS_W3_7 = -1; +short SPR_SS_W3_8 = -1; +short SPR_SS_W4_1 = -1; +short SPR_SS_W4_2 = -1; +short SPR_SS_W4_3 = -1; +short SPR_SS_W4_4 = -1; +short SPR_SS_W4_5 = -1; +short SPR_SS_W4_6 = -1; +short SPR_SS_W4_7 = -1; +short SPR_SS_W4_8 = -1; +short SPR_SS_PAIN_1 = -1; +short SPR_SS_DIE_1 = -1; +short SPR_SS_DIE_2 = -1; +short SPR_SS_DIE_3 = -1; +short SPR_SS_PAIN_2 = -1; +short SPR_SS_DEAD = -1; +short SPR_SS_SHOOT1 = -1; +short SPR_SS_SHOOT2 = -1; +short SPR_SS_SHOOT3 = -1; +short SPR_MUT_S_1 = -1; +short SPR_MUT_S_2 = -1; +short SPR_MUT_S_3 = -1; +short SPR_MUT_S_4 = -1; +short SPR_MUT_S_5 = -1; +short SPR_MUT_S_6 = -1; +short SPR_MUT_S_7 = -1; +short SPR_MUT_S_8 = -1; +short SPR_MUT_W1_1 = -1; +short SPR_MUT_W1_2 = -1; +short SPR_MUT_W1_3 = -1; +short SPR_MUT_W1_4 = -1; +short SPR_MUT_W1_5 = -1; +short SPR_MUT_W1_6 = -1; +short SPR_MUT_W1_7 = -1; +short SPR_MUT_W1_8 = -1; +short SPR_MUT_W2_1 = -1; +short SPR_MUT_W2_2 = -1; +short SPR_MUT_W2_3 = -1; +short SPR_MUT_W2_4 = -1; +short SPR_MUT_W2_5 = -1; +short SPR_MUT_W2_6 = -1; +short SPR_MUT_W2_7 = -1; +short SPR_MUT_W2_8 = -1; +short SPR_MUT_W3_1 = -1; +short SPR_MUT_W3_2 = -1; +short SPR_MUT_W3_3 = -1; +short SPR_MUT_W3_4 = -1; +short SPR_MUT_W3_5 = -1; +short SPR_MUT_W3_6 = -1; +short SPR_MUT_W3_7 = -1; +short SPR_MUT_W3_8 = -1; +short SPR_MUT_W4_1 = -1; +short SPR_MUT_W4_2 = -1; +short SPR_MUT_W4_3 = -1; +short SPR_MUT_W4_4 = -1; +short SPR_MUT_W4_5 = -1; +short SPR_MUT_W4_6 = -1; +short SPR_MUT_W4_7 = -1; +short SPR_MUT_W4_8 = -1; +short SPR_MUT_PAIN_1 = -1; +short SPR_MUT_DIE_1 = -1; +short SPR_MUT_DIE_2 = -1; +short SPR_MUT_DIE_3 = -1; +short SPR_MUT_PAIN_2 = -1; +short SPR_MUT_DIE_4 = -1; +short SPR_MUT_DEAD = -1; +short SPR_MUT_SHOOT1 = -1; +short SPR_MUT_SHOOT2 = -1; +short SPR_MUT_SHOOT3 = -1; +short SPR_MUT_SHOOT4 = -1; +short SPR_OFC_S_1 = -1; +short SPR_OFC_S_2 = -1; +short SPR_OFC_S_3 = -1; +short SPR_OFC_S_4 = -1; +short SPR_OFC_S_5 = -1; +short SPR_OFC_S_6 = -1; +short SPR_OFC_S_7 = -1; +short SPR_OFC_S_8 = -1; +short SPR_OFC_W1_1 = -1; +short SPR_OFC_W1_2 = -1; +short SPR_OFC_W1_3 = -1; +short SPR_OFC_W1_4 = -1; +short SPR_OFC_W1_5 = -1; +short SPR_OFC_W1_6 = -1; +short SPR_OFC_W1_7 = -1; +short SPR_OFC_W1_8 = -1; +short SPR_OFC_W2_1 = -1; +short SPR_OFC_W2_2 = -1; +short SPR_OFC_W2_3 = -1; +short SPR_OFC_W2_4 = -1; +short SPR_OFC_W2_5 = -1; +short SPR_OFC_W2_6 = -1; +short SPR_OFC_W2_7 = -1; +short SPR_OFC_W2_8 = -1; +short SPR_OFC_W3_1 = -1; +short SPR_OFC_W3_2 = -1; +short SPR_OFC_W3_3 = -1; +short SPR_OFC_W3_4 = -1; +short SPR_OFC_W3_5 = -1; +short SPR_OFC_W3_6 = -1; +short SPR_OFC_W3_7 = -1; +short SPR_OFC_W3_8 = -1; +short SPR_OFC_W4_1 = -1; +short SPR_OFC_W4_2 = -1; +short SPR_OFC_W4_3 = -1; +short SPR_OFC_W4_4 = -1; +short SPR_OFC_W4_5 = -1; +short SPR_OFC_W4_6 = -1; +short SPR_OFC_W4_7 = -1; +short SPR_OFC_W4_8 = -1; +short SPR_OFC_PAIN_1 = -1; +short SPR_OFC_DIE_1 = -1; +short SPR_OFC_DIE_2 = -1; +short SPR_OFC_DIE_3 = -1; +short SPR_OFC_PAIN_2 = -1; +short SPR_OFC_DIE_4 = -1; +short SPR_OFC_DEAD = -1; +short SPR_OFC_SHOOT1 = -1; +short SPR_OFC_SHOOT2 = -1; +short SPR_OFC_SHOOT3 = -1; +short SPR_BLINKY_W1 = -1; +short SPR_BLINKY_W2 = -1; +short SPR_PINKY_W1 = -1; +short SPR_PINKY_W2 = -1; +short SPR_CLYDE_W1 = -1; +short SPR_CLYDE_W2 = -1; +short SPR_INKY_W1 = -1; +short SPR_INKY_W2 = -1; +short SPR_BOSS_W1 = -1; +short SPR_BOSS_W2 = -1; +short SPR_BOSS_W3 = -1; +short SPR_BOSS_W4 = -1; +short SPR_BOSS_SHOOT1 = -1; +short SPR_BOSS_SHOOT2 = -1; +short SPR_BOSS_SHOOT3 = -1; +short SPR_BOSS_DEAD = -1; +short SPR_BOSS_DIE1 = -1; +short SPR_BOSS_DIE2 = -1; +short SPR_BOSS_DIE3 = -1; +short SPR_SCHABB_W1 = -1; +short SPR_SCHABB_W2 = -1; +short SPR_SCHABB_W3 = -1; +short SPR_SCHABB_W4 = -1; +short SPR_SCHABB_SHOOT1 = -1; +short SPR_SCHABB_SHOOT2 = -1; +short SPR_SCHABB_DIE1 = -1; +short SPR_SCHABB_DIE2 = -1; +short SPR_SCHABB_DIE3 = -1; +short SPR_SCHABB_DEAD = -1; +short SPR_HYPO1 = -1; +short SPR_HYPO2 = -1; +short SPR_HYPO3 = -1; +short SPR_HYPO4 = -1; +short SPR_FAKE_W1 = -1; +short SPR_FAKE_W2 = -1; +short SPR_FAKE_W3 = -1; +short SPR_FAKE_W4 = -1; +short SPR_FAKE_SHOOT = -1; +short SPR_FIRE1 = -1; +short SPR_FIRE2 = -1; +short SPR_FAKE_DIE1 = -1; +short SPR_FAKE_DIE2 = -1; +short SPR_FAKE_DIE3 = -1; +short SPR_FAKE_DIE4 = -1; +short SPR_FAKE_DIE5 = -1; +short SPR_FAKE_DEAD = -1; +short SPR_MECHA_W1 = -1; +short SPR_MECHA_W2 = -1; +short SPR_MECHA_W3 = -1; +short SPR_MECHA_W4 = -1; +short SPR_MECHA_SHOOT1 = -1; +short SPR_MECHA_SHOOT2 = -1; +short SPR_MECHA_SHOOT3 = -1; +short SPR_MECHA_DEAD = -1; +short SPR_MECHA_DIE1 = -1; +short SPR_MECHA_DIE2 = -1; +short SPR_MECHA_DIE3 = -1; +short SPR_HITLER_W1 = -1; +short SPR_HITLER_W2 = -1; +short SPR_HITLER_W3 = -1; +short SPR_HITLER_W4 = -1; +short SPR_HITLER_SHOOT1 = -1; +short SPR_HITLER_SHOOT2 = -1; +short SPR_HITLER_SHOOT3 = -1; +short SPR_HITLER_DEAD = -1; +short SPR_HITLER_DIE1 = -1; +short SPR_HITLER_DIE2 = -1; +short SPR_HITLER_DIE3 = -1; +short SPR_HITLER_DIE4 = -1; +short SPR_HITLER_DIE5 = -1; +short SPR_HITLER_DIE6 = -1; +short SPR_HITLER_DIE7 = -1; +short SPR_GIFT_W1 = -1; +short SPR_GIFT_W2 = -1; +short SPR_GIFT_W3 = -1; +short SPR_GIFT_W4 = -1; +short SPR_GIFT_SHOOT1 = -1; +short SPR_GIFT_SHOOT2 = -1; +short SPR_GIFT_DIE1 = -1; +short SPR_GIFT_DIE2 = -1; +short SPR_GIFT_DIE3 = -1; +short SPR_GIFT_DEAD = -1; +short SPR_ROCKET_1 = -1; +short SPR_ROCKET_2 = -1; +short SPR_ROCKET_3 = -1; +short SPR_ROCKET_4 = -1; +short SPR_ROCKET_5 = -1; +short SPR_ROCKET_6 = -1; +short SPR_ROCKET_7 = -1; +short SPR_ROCKET_8 = -1; +short SPR_SMOKE_1 = -1; +short SPR_SMOKE_2 = -1; +short SPR_SMOKE_3 = -1; +short SPR_SMOKE_4 = -1; +short SPR_BOOM_1 = -1; +short SPR_BOOM_2 = -1; +short SPR_BOOM_3 = -1; +short SPR_HROCKET_1 = -1; +short SPR_HROCKET_2 = -1; +short SPR_HROCKET_3 = -1; +short SPR_HROCKET_4 = -1; +short SPR_HROCKET_5 = -1; +short SPR_HROCKET_6 = -1; +short SPR_HROCKET_7 = -1; +short SPR_HROCKET_8 = -1; +short SPR_HSMOKE_1 = -1; +short SPR_HSMOKE_2 = -1; +short SPR_HSMOKE_3 = -1; +short SPR_HSMOKE_4 = -1; +short SPR_HBOOM_1 = -1; +short SPR_HBOOM_2 = -1; +short SPR_HBOOM_3 = -1; +short SPR_SPARK1 = -1; +short SPR_SPARK2 = -1; +short SPR_SPARK3 = -1; +short SPR_SPARK4 = -1; +short SPR_GRETEL_W1 = -1; +short SPR_GRETEL_W2 = -1; +short SPR_GRETEL_W3 = -1; +short SPR_GRETEL_W4 = -1; +short SPR_GRETEL_SHOOT1 = -1; +short SPR_GRETEL_SHOOT2 = -1; +short SPR_GRETEL_SHOOT3 = -1; +short SPR_GRETEL_DEAD = -1; +short SPR_GRETEL_DIE1 = -1; +short SPR_GRETEL_DIE2 = -1; +short SPR_GRETEL_DIE3 = -1; +short SPR_FAT_W1 = -1; +short SPR_FAT_W2 = -1; +short SPR_FAT_W3 = -1; +short SPR_FAT_W4 = -1; +short SPR_FAT_SHOOT1 = -1; +short SPR_FAT_SHOOT2 = -1; +short SPR_FAT_SHOOT3 = -1; +short SPR_FAT_SHOOT4 = -1; +short SPR_FAT_DIE1 = -1; +short SPR_FAT_DIE2 = -1; +short SPR_FAT_DIE3 = -1; +short SPR_FAT_DEAD = -1; +short SPR_BJ_W1 = -1; +short SPR_BJ_W2 = -1; +short SPR_BJ_W3 = -1; +short SPR_BJ_W4 = -1; +short SPR_BJ_JUMP1 = -1; +short SPR_BJ_JUMP2 = -1; +short SPR_BJ_JUMP3 = -1; +short SPR_BJ_JUMP4 = -1; +short SPR_TRANS_W1 = -1; +short SPR_TRANS_W2 = -1; +short SPR_TRANS_W3 = -1; +short SPR_TRANS_W4 = -1; +short SPR_TRANS_SHOOT1 = -1; +short SPR_TRANS_SHOOT2 = -1; +short SPR_TRANS_SHOOT3 = -1; +short SPR_TRANS_DEAD = -1; +short SPR_TRANS_DIE1 = -1; +short SPR_TRANS_DIE2 = -1; +short SPR_TRANS_DIE3 = -1; +short SPR_WILL_W1 = -1; +short SPR_WILL_W2 = -1; +short SPR_WILL_W3 = -1; +short SPR_WILL_W4 = -1; +short SPR_WILL_SHOOT1 = -1; +short SPR_WILL_SHOOT2 = -1; +short SPR_WILL_SHOOT3 = -1; +short SPR_WILL_SHOOT4 = -1; +short SPR_WILL_DIE1 = -1; +short SPR_WILL_DIE2 = -1; +short SPR_WILL_DIE3 = -1; +short SPR_WILL_DEAD = -1; +short SPR_UBER_W1 = -1; +short SPR_UBER_W2 = -1; +short SPR_UBER_W3 = -1; +short SPR_UBER_W4 = -1; +short SPR_UBER_SHOOT1 = -1; +short SPR_UBER_SHOOT2 = -1; +short SPR_UBER_SHOOT3 = -1; +short SPR_UBER_SHOOT4 = -1; +short SPR_UBER_DIE1 = -1; +short SPR_UBER_DIE2 = -1; +short SPR_UBER_DIE3 = -1; +short SPR_UBER_DIE4 = -1; +short SPR_UBER_DEAD = -1; +short SPR_DEATH_W1 = -1; +short SPR_DEATH_W2 = -1; +short SPR_DEATH_W3 = -1; +short SPR_DEATH_W4 = -1; +short SPR_DEATH_SHOOT1 = -1; +short SPR_DEATH_SHOOT2 = -1; +short SPR_DEATH_SHOOT3 = -1; +short SPR_DEATH_SHOOT4 = -1; +short SPR_DEATH_DIE1 = -1; +short SPR_DEATH_DIE2 = -1; +short SPR_DEATH_DIE3 = -1; +short SPR_DEATH_DIE4 = -1; +short SPR_DEATH_DIE5 = -1; +short SPR_DEATH_DIE6 = -1; +short SPR_DEATH_DEAD = -1; +short SPR_SPECTRE_W1 = -1; +short SPR_SPECTRE_W2 = -1; +short SPR_SPECTRE_W3 = -1; +short SPR_SPECTRE_W4 = -1; +short SPR_SPECTRE_F1 = -1; +short SPR_SPECTRE_F2 = -1; +short SPR_SPECTRE_F3 = -1; +short SPR_SPECTRE_F4 = -1; +short SPR_ANGEL_W1 = -1; +short SPR_ANGEL_W2 = -1; +short SPR_ANGEL_W3 = -1; +short SPR_ANGEL_W4 = -1; +short SPR_ANGEL_SHOOT1 = -1; +short SPR_ANGEL_SHOOT2 = -1; +short SPR_ANGEL_TIRED1 = -1; +short SPR_ANGEL_TIRED2 = -1; +short SPR_ANGEL_DIE1 = -1; +short SPR_ANGEL_DIE2 = -1; +short SPR_ANGEL_DIE3 = -1; +short SPR_ANGEL_DIE4 = -1; +short SPR_ANGEL_DIE5 = -1; +short SPR_ANGEL_DIE6 = -1; +short SPR_ANGEL_DIE7 = -1; +short SPR_ANGEL_DEAD = -1; +short SPR_KNIFEREADY = -1; +short SPR_KNIFEATK1 = -1; +short SPR_KNIFEATK2 = -1; +short SPR_KNIFEATK3 = -1; +short SPR_KNIFEATK4 = -1; +short SPR_PISTOLREADY = -1; +short SPR_PISTOLATK1 = -1; +short SPR_PISTOLATK2 = -1; +short SPR_PISTOLATK3 = -1; +short SPR_PISTOLATK4 = -1; +short SPR_MACHINEGUNREADY = -1; +short SPR_MACHINEGUNATK1 = -1; +short SPR_MACHINEGUNATK2 = -1; +short SPR_MACHINEGUNATK3 = -1; +short SPR_MACHINEGUNATK4 = -1; +short SPR_CHAINREADY = -1; +short SPR_CHAINATK1 = -1; +short SPR_CHAINATK2 = -1; +short SPR_CHAINATK3 = -1; +short SPR_CHAINATK4 = -1; + +void InitSprites (void) +{ + short i = 0; + + if (SPR_DEMO == 0) + return; + + SPR_DEMO = i++; +#ifndef APOGEE_1_0 + SPR_DEATHCAM = i++; +#endif + // + // static sprites + // + SPR_STAT_0 = i++; + SPR_STAT_1 = i++; + SPR_STAT_2 = i++; + SPR_STAT_3 = i++; + SPR_STAT_4 = i++; + SPR_STAT_5 = i++; + SPR_STAT_6 = i++; + SPR_STAT_7 = i++; + SPR_STAT_8 = i++; + SPR_STAT_9 = i++; + SPR_STAT_10 = i++; + SPR_STAT_11 = i++; + SPR_STAT_12 = i++; + SPR_STAT_13 = i++; + SPR_STAT_14 = i++; + SPR_STAT_15 = i++; + SPR_STAT_16 = i++; + SPR_STAT_17 = i++; + SPR_STAT_18 = i++; + SPR_STAT_19 = i++; + SPR_STAT_20 = i++; + SPR_STAT_21 = i++; + SPR_STAT_22 = i++; + SPR_STAT_23 = i++; + SPR_STAT_24 = i++; + SPR_STAT_25 = i++; + SPR_STAT_26 = i++; + SPR_STAT_27 = i++; + SPR_STAT_28 = i++; + SPR_STAT_29 = i++; + SPR_STAT_30 = i++; + SPR_STAT_31 = i++; + SPR_STAT_32 = i++; + SPR_STAT_33 = i++; + SPR_STAT_34 = i++; + SPR_STAT_35 = i++; + SPR_STAT_36 = i++; + SPR_STAT_37 = i++; + SPR_STAT_38 = i++; + SPR_STAT_39 = i++; + SPR_STAT_40 = i++; + SPR_STAT_41 = i++; + SPR_STAT_42 = i++; + SPR_STAT_43 = i++; + SPR_STAT_44 = i++; + SPR_STAT_45 = i++; + SPR_STAT_46 = i++; + SPR_STAT_47 = i++; +#ifdef SPEAR + SPR_STAT_48 = i++; + SPR_STAT_49 = i++; + SPR_STAT_50 = i++; + SPR_STAT_51 = i++; +#endif + // + // guard + // + SPR_GRD_S_1 = i++; + SPR_GRD_S_2 = i++; + SPR_GRD_S_3 = i++; + SPR_GRD_S_4 = i++; + SPR_GRD_S_5 = i++; + SPR_GRD_S_6 = i++; + SPR_GRD_S_7 = i++; + SPR_GRD_S_8 = i++; + SPR_GRD_W1_1 = i++; + SPR_GRD_W1_2 = i++; + SPR_GRD_W1_3 = i++; + SPR_GRD_W1_4 = i++; + SPR_GRD_W1_5 = i++; + SPR_GRD_W1_6 = i++; + SPR_GRD_W1_7 = i++; + SPR_GRD_W1_8 = i++; + SPR_GRD_W2_1 = i++; + SPR_GRD_W2_2 = i++; + SPR_GRD_W2_3 = i++; + SPR_GRD_W2_4 = i++; + SPR_GRD_W2_5 = i++; + SPR_GRD_W2_6 = i++; + SPR_GRD_W2_7 = i++; + SPR_GRD_W2_8 = i++; + SPR_GRD_W3_1 = i++; + SPR_GRD_W3_2 = i++; + SPR_GRD_W3_3 = i++; + SPR_GRD_W3_4 = i++; + SPR_GRD_W3_5 = i++; + SPR_GRD_W3_6 = i++; + SPR_GRD_W3_7 = i++; + SPR_GRD_W3_8 = i++; + SPR_GRD_W4_1 = i++; + SPR_GRD_W4_2 = i++; + SPR_GRD_W4_3 = i++; + SPR_GRD_W4_4 = i++; + SPR_GRD_W4_5 = i++; + SPR_GRD_W4_6 = i++; + SPR_GRD_W4_7 = i++; + SPR_GRD_W4_8 = i++; + SPR_GRD_PAIN_1 = i++; + SPR_GRD_DIE_1 = i++; + SPR_GRD_DIE_2 = i++; + SPR_GRD_DIE_3 = i++; + SPR_GRD_PAIN_2 = i++; + SPR_GRD_DEAD = i++; + SPR_GRD_SHOOT1 = i++; + SPR_GRD_SHOOT2 = i++; + SPR_GRD_SHOOT3 = i++; + // + // dogs + // + SPR_DOG_W1_1 = i++; + SPR_DOG_W1_2 = i++; + SPR_DOG_W1_3 = i++; + SPR_DOG_W1_4 = i++; + SPR_DOG_W1_5 = i++; + SPR_DOG_W1_6 = i++; + SPR_DOG_W1_7 = i++; + SPR_DOG_W1_8 = i++; + SPR_DOG_W2_1 = i++; + SPR_DOG_W2_2 = i++; + SPR_DOG_W2_3 = i++; + SPR_DOG_W2_4 = i++; + SPR_DOG_W2_5 = i++; + SPR_DOG_W2_6 = i++; + SPR_DOG_W2_7 = i++; + SPR_DOG_W2_8 = i++; + SPR_DOG_W3_1 = i++; + SPR_DOG_W3_2 = i++; + SPR_DOG_W3_3 = i++; + SPR_DOG_W3_4 = i++; + SPR_DOG_W3_5 = i++; + SPR_DOG_W3_6 = i++; + SPR_DOG_W3_7 = i++; + SPR_DOG_W3_8 = i++; + SPR_DOG_W4_1 = i++; + SPR_DOG_W4_2 = i++; + SPR_DOG_W4_3 = i++; + SPR_DOG_W4_4 = i++; + SPR_DOG_W4_5 = i++; + SPR_DOG_W4_6 = i++; + SPR_DOG_W4_7 = i++; + SPR_DOG_W4_8 = i++; + SPR_DOG_DIE_1 = i++; + SPR_DOG_DIE_2 = i++; + SPR_DOG_DIE_3 = i++; + SPR_DOG_DEAD = i++; + SPR_DOG_JUMP1 = i++; + SPR_DOG_JUMP2 = i++; + SPR_DOG_JUMP3 = i++; + // + // ss + // + SPR_SS_S_1 = i++; + SPR_SS_S_2 = i++; + SPR_SS_S_3 = i++; + SPR_SS_S_4 = i++; + SPR_SS_S_5 = i++; + SPR_SS_S_6 = i++; + SPR_SS_S_7 = i++; + SPR_SS_S_8 = i++; + SPR_SS_W1_1 = i++; + SPR_SS_W1_2 = i++; + SPR_SS_W1_3 = i++; + SPR_SS_W1_4 = i++; + SPR_SS_W1_5 = i++; + SPR_SS_W1_6 = i++; + SPR_SS_W1_7 = i++; + SPR_SS_W1_8 = i++; + SPR_SS_W2_1 = i++; + SPR_SS_W2_2 = i++; + SPR_SS_W2_3 = i++; + SPR_SS_W2_4 = i++; + SPR_SS_W2_5 = i++; + SPR_SS_W2_6 = i++; + SPR_SS_W2_7 = i++; + SPR_SS_W2_8 = i++; + SPR_SS_W3_1 = i++; + SPR_SS_W3_2 = i++; + SPR_SS_W3_3 = i++; + SPR_SS_W3_4 = i++; + SPR_SS_W3_5 = i++; + SPR_SS_W3_6 = i++; + SPR_SS_W3_7 = i++; + SPR_SS_W3_8 = i++; + SPR_SS_W4_1 = i++; + SPR_SS_W4_2 = i++; + SPR_SS_W4_3 = i++; + SPR_SS_W4_4 = i++; + SPR_SS_W4_5 = i++; + SPR_SS_W4_6 = i++; + SPR_SS_W4_7 = i++; + SPR_SS_W4_8 = i++; + SPR_SS_PAIN_1 = i++; + SPR_SS_DIE_1 = i++; + SPR_SS_DIE_2 = i++; + SPR_SS_DIE_3 = i++; + SPR_SS_PAIN_2 = i++; + SPR_SS_DEAD = i++; + SPR_SS_SHOOT1 = i++; + SPR_SS_SHOOT2 = i++; + SPR_SS_SHOOT3 = i++; + // + // mutant + // + SPR_MUT_S_1 = i++; + SPR_MUT_S_2 = i++; + SPR_MUT_S_3 = i++; + SPR_MUT_S_4 = i++; + SPR_MUT_S_5 = i++; + SPR_MUT_S_6 = i++; + SPR_MUT_S_7 = i++; + SPR_MUT_S_8 = i++; + SPR_MUT_W1_1 = i++; + SPR_MUT_W1_2 = i++; + SPR_MUT_W1_3 = i++; + SPR_MUT_W1_4 = i++; + SPR_MUT_W1_5 = i++; + SPR_MUT_W1_6 = i++; + SPR_MUT_W1_7 = i++; + SPR_MUT_W1_8 = i++; + SPR_MUT_W2_1 = i++; + SPR_MUT_W2_2 = i++; + SPR_MUT_W2_3 = i++; + SPR_MUT_W2_4 = i++; + SPR_MUT_W2_5 = i++; + SPR_MUT_W2_6 = i++; + SPR_MUT_W2_7 = i++; + SPR_MUT_W2_8 = i++; + SPR_MUT_W3_1 = i++; + SPR_MUT_W3_2 = i++; + SPR_MUT_W3_3 = i++; + SPR_MUT_W3_4 = i++; + SPR_MUT_W3_5 = i++; + SPR_MUT_W3_6 = i++; + SPR_MUT_W3_7 = i++; + SPR_MUT_W3_8 = i++; + SPR_MUT_W4_1 = i++; + SPR_MUT_W4_2 = i++; + SPR_MUT_W4_3 = i++; + SPR_MUT_W4_4 = i++; + SPR_MUT_W4_5 = i++; + SPR_MUT_W4_6 = i++; + SPR_MUT_W4_7 = i++; + SPR_MUT_W4_8 = i++; + SPR_MUT_PAIN_1 = i++; + SPR_MUT_DIE_1 = i++; + SPR_MUT_DIE_2 = i++; + SPR_MUT_DIE_3 = i++; + SPR_MUT_PAIN_2 = i++; + SPR_MUT_DIE_4 = i++; + SPR_MUT_DEAD = i++; + SPR_MUT_SHOOT1 = i++; + SPR_MUT_SHOOT2 = i++; + SPR_MUT_SHOOT3 = i++; + SPR_MUT_SHOOT4 = i++; + // + // officer + // + SPR_OFC_S_1 = i++; + SPR_OFC_S_2 = i++; + SPR_OFC_S_3 = i++; + SPR_OFC_S_4 = i++; + SPR_OFC_S_5 = i++; + SPR_OFC_S_6 = i++; + SPR_OFC_S_7 = i++; + SPR_OFC_S_8 = i++; + SPR_OFC_W1_1 = i++; + SPR_OFC_W1_2 = i++; + SPR_OFC_W1_3 = i++; + SPR_OFC_W1_4 = i++; + SPR_OFC_W1_5 = i++; + SPR_OFC_W1_6 = i++; + SPR_OFC_W1_7 = i++; + SPR_OFC_W1_8 = i++; + SPR_OFC_W2_1 = i++; + SPR_OFC_W2_2 = i++; + SPR_OFC_W2_3 = i++; + SPR_OFC_W2_4 = i++; + SPR_OFC_W2_5 = i++; + SPR_OFC_W2_6 = i++; + SPR_OFC_W2_7 = i++; + SPR_OFC_W2_8 = i++; + SPR_OFC_W3_1 = i++; + SPR_OFC_W3_2 = i++; + SPR_OFC_W3_3 = i++; + SPR_OFC_W3_4 = i++; + SPR_OFC_W3_5 = i++; + SPR_OFC_W3_6 = i++; + SPR_OFC_W3_7 = i++; + SPR_OFC_W3_8 = i++; + SPR_OFC_W4_1 = i++; + SPR_OFC_W4_2 = i++; + SPR_OFC_W4_3 = i++; + SPR_OFC_W4_4 = i++; + SPR_OFC_W4_5 = i++; + SPR_OFC_W4_6 = i++; + SPR_OFC_W4_7 = i++; + SPR_OFC_W4_8 = i++; + SPR_OFC_PAIN_1 = i++; + SPR_OFC_DIE_1 = i++; + SPR_OFC_DIE_2 = i++; + SPR_OFC_DIE_3 = i++; + SPR_OFC_PAIN_2 = i++; + SPR_OFC_DIE_4 = i++; + SPR_OFC_DEAD = i++; + SPR_OFC_SHOOT1 = i++; + SPR_OFC_SHOOT2 = i++; + SPR_OFC_SHOOT3 = i++; +#ifndef SPEAR + // + // ghosts + // + SPR_BLINKY_W1 = i++; + SPR_BLINKY_W2 = i++; + SPR_PINKY_W1 = i++; + SPR_PINKY_W2 = i++; + SPR_CLYDE_W1 = i++; + SPR_CLYDE_W2 = i++; + SPR_INKY_W1 = i++; + SPR_INKY_W2 = i++; + // + // hans + // + SPR_BOSS_W1 = i++; + SPR_BOSS_W2 = i++; + SPR_BOSS_W3 = i++; + SPR_BOSS_W4 = i++; + SPR_BOSS_SHOOT1 = i++; + SPR_BOSS_SHOOT2 = i++; + SPR_BOSS_SHOOT3 = i++; + SPR_BOSS_DEAD = i++; + SPR_BOSS_DIE1 = i++; + SPR_BOSS_DIE2 = i++; + SPR_BOSS_DIE3 = i++; + // + // schabbs + // + SPR_SCHABB_W1 = i++; + SPR_SCHABB_W2 = i++; + SPR_SCHABB_W3 = i++; + SPR_SCHABB_W4 = i++; + SPR_SCHABB_SHOOT1 = i++; + SPR_SCHABB_SHOOT2 = i++; + SPR_SCHABB_DIE1 = i++; + SPR_SCHABB_DIE2 = i++; + SPR_SCHABB_DIE3 = i++; + SPR_SCHABB_DEAD = i++; + SPR_HYPO1 = i++; + SPR_HYPO2 = i++; + SPR_HYPO3 = i++; + SPR_HYPO4 = i++; + // + // fake + // + SPR_FAKE_W1 = i++; + SPR_FAKE_W2 = i++; + SPR_FAKE_W3 = i++; + SPR_FAKE_W4 = i++; + SPR_FAKE_SHOOT = i++; + SPR_FIRE1 = i++; + SPR_FIRE2 = i++; + SPR_FAKE_DIE1 = i++; + SPR_FAKE_DIE2 = i++; + SPR_FAKE_DIE3 = i++; + SPR_FAKE_DIE4 = i++; + SPR_FAKE_DIE5 = i++; + SPR_FAKE_DEAD = i++; + // + // hitler + // + SPR_MECHA_W1 = i++; + SPR_MECHA_W2 = i++; + SPR_MECHA_W3 = i++; + SPR_MECHA_W4 = i++; + SPR_MECHA_SHOOT1 = i++; + SPR_MECHA_SHOOT2 = i++; + SPR_MECHA_SHOOT3 = i++; + SPR_MECHA_DEAD = i++; + SPR_MECHA_DIE1 = i++; + SPR_MECHA_DIE2 = i++; + SPR_MECHA_DIE3 = i++; + SPR_HITLER_W1 = i++; + SPR_HITLER_W2 = i++; + SPR_HITLER_W3 = i++; + SPR_HITLER_W4 = i++; + SPR_HITLER_SHOOT1 = i++; + SPR_HITLER_SHOOT2 = i++; + SPR_HITLER_SHOOT3 = i++; + SPR_HITLER_DEAD = i++; + SPR_HITLER_DIE1 = i++; + SPR_HITLER_DIE2 = i++; + SPR_HITLER_DIE3 = i++; + SPR_HITLER_DIE4 = i++; + SPR_HITLER_DIE5 = i++; + SPR_HITLER_DIE6 = i++; + SPR_HITLER_DIE7 = i++; + // + // giftmacher + // + SPR_GIFT_W1 = i++; + SPR_GIFT_W2 = i++; + SPR_GIFT_W3 = i++; + SPR_GIFT_W4 = i++; + SPR_GIFT_SHOOT1 = i++; + SPR_GIFT_SHOOT2 = i++; + SPR_GIFT_DIE1 = i++; + SPR_GIFT_DIE2 = i++; + SPR_GIFT_DIE3 = i++; + SPR_GIFT_DEAD = i++; +#endif + // + // Rocket = smoke and small explosion + // + SPR_ROCKET_1 = i++; + SPR_ROCKET_2 = i++; + SPR_ROCKET_3 = i++; + SPR_ROCKET_4 = i++; + SPR_ROCKET_5 = i++; + SPR_ROCKET_6 = i++; + SPR_ROCKET_7 = i++; + SPR_ROCKET_8 = i++; + SPR_SMOKE_1 = i++; + SPR_SMOKE_2 = i++; + SPR_SMOKE_3 = i++; + SPR_SMOKE_4 = i++; + SPR_BOOM_1 = i++; + SPR_BOOM_2 = i++; + SPR_BOOM_3 = i++; + // + // Angel of Death's DeathSparks(tm) + // +#ifdef SPEAR + SPR_HROCKET_1 = i++; + SPR_HROCKET_2 = i++; + SPR_HROCKET_3 = i++; + SPR_HROCKET_4 = i++; + SPR_HROCKET_5 = i++; + SPR_HROCKET_6 = i++; + SPR_HROCKET_7 = i++; + SPR_HROCKET_8 = i++; + SPR_HSMOKE_1 = i++; + SPR_HSMOKE_2 = i++; + SPR_HSMOKE_3 = i++; + SPR_HSMOKE_4 = i++; + SPR_HBOOM_1 = i++; + SPR_HBOOM_2 = i++; + SPR_HBOOM_3 = i++; + SPR_SPARK1 = i++; + SPR_SPARK2 = i++; + SPR_SPARK3 = i++; + SPR_SPARK4 = i++; +#endif +#ifndef SPEAR + // + // gretel + // + SPR_GRETEL_W1 = i++; + SPR_GRETEL_W2 = i++; + SPR_GRETEL_W3 = i++; + SPR_GRETEL_W4 = i++; + SPR_GRETEL_SHOOT1 = i++; + SPR_GRETEL_SHOOT2 = i++; + SPR_GRETEL_SHOOT3 = i++; + SPR_GRETEL_DEAD = i++; + SPR_GRETEL_DIE1 = i++; + SPR_GRETEL_DIE2 = i++; + SPR_GRETEL_DIE3 = i++; + // + // fat face + // + SPR_FAT_W1 = i++; + SPR_FAT_W2 = i++; + SPR_FAT_W3 = i++; + SPR_FAT_W4 = i++; + SPR_FAT_SHOOT1 = i++; + SPR_FAT_SHOOT2 = i++; + SPR_FAT_SHOOT3 = i++; + SPR_FAT_SHOOT4 = i++; + SPR_FAT_DIE1 = i++; + SPR_FAT_DIE2 = i++; + SPR_FAT_DIE3 = i++; + SPR_FAT_DEAD = i++; + // + // bj + // +#ifdef APOGEE_1_0 + i = 360; +#elif defined(APOGEE_1_1) && defined(UPLOAD) + i = 406; +#endif + SPR_BJ_W1 = i++; + SPR_BJ_W2 = i++; + SPR_BJ_W3 = i++; + SPR_BJ_W4 = i++; + SPR_BJ_JUMP1 = i++; + SPR_BJ_JUMP2 = i++; + SPR_BJ_JUMP3 = i++; + SPR_BJ_JUMP4 = i++; +#else + // + // THESE ARE FOR 'SPEAR OF DESTINY' + // + // + // Trans Grosse + // + SPR_TRANS_W1 = i++; + SPR_TRANS_W2 = i++; + SPR_TRANS_W3 = i++; + SPR_TRANS_W4 = i++; + SPR_TRANS_SHOOT1 = i++; + SPR_TRANS_SHOOT2 = i++; + SPR_TRANS_SHOOT3 = i++; + SPR_TRANS_DEAD = i++; + SPR_TRANS_DIE1 = i++; + SPR_TRANS_DIE2 = i++; + SPR_TRANS_DIE3 = i++; + // + // Wilhelm + // + SPR_WILL_W1 = i++; + SPR_WILL_W2 = i++; + SPR_WILL_W3 = i++; + SPR_WILL_W4 = i++; + SPR_WILL_SHOOT1 = i++; + SPR_WILL_SHOOT2 = i++; + SPR_WILL_SHOOT3 = i++; + SPR_WILL_SHOOT4 = i++; + SPR_WILL_DIE1 = i++; + SPR_WILL_DIE2 = i++; + SPR_WILL_DIE3 = i++; + SPR_WILL_DEAD = i++; + // + // UberMutant + // + SPR_UBER_W1 = i++; + SPR_UBER_W2 = i++; + SPR_UBER_W3 = i++; + SPR_UBER_W4 = i++; + SPR_UBER_SHOOT1 = i++; + SPR_UBER_SHOOT2 = i++; + SPR_UBER_SHOOT3 = i++; + SPR_UBER_SHOOT4 = i++; + SPR_UBER_DIE1 = i++; + SPR_UBER_DIE2 = i++; + SPR_UBER_DIE3 = i++; + SPR_UBER_DIE4 = i++; + SPR_UBER_DEAD = i++; + // + // Death Knight + // + SPR_DEATH_W1 = i++; + SPR_DEATH_W2 = i++; + SPR_DEATH_W3 = i++; + SPR_DEATH_W4 = i++; + SPR_DEATH_SHOOT1 = i++; + SPR_DEATH_SHOOT2 = i++; + SPR_DEATH_SHOOT3 = i++; + SPR_DEATH_SHOOT4 = i++; + SPR_DEATH_DIE1 = i++; + SPR_DEATH_DIE2 = i++; + SPR_DEATH_DIE3 = i++; + SPR_DEATH_DIE4 = i++; + SPR_DEATH_DIE5 = i++; + SPR_DEATH_DIE6 = i++; + SPR_DEATH_DEAD = i++; + // + // Ghost + // + SPR_SPECTRE_W1 = i++; + SPR_SPECTRE_W2 = i++; + SPR_SPECTRE_W3 = i++; + SPR_SPECTRE_W4 = i++; + SPR_SPECTRE_F1 = i++; + SPR_SPECTRE_F2 = i++; + SPR_SPECTRE_F3 = i++; + SPR_SPECTRE_F4 = i++; + // + // Angel of Death + // + SPR_ANGEL_W1 = i++; + SPR_ANGEL_W2 = i++; + SPR_ANGEL_W3 = i++; + SPR_ANGEL_W4 = i++; + SPR_ANGEL_SHOOT1 = i++; + SPR_ANGEL_SHOOT2 = i++; + SPR_ANGEL_TIRED1 = i++; + SPR_ANGEL_TIRED2 = i++; + SPR_ANGEL_DIE1 = i++; + SPR_ANGEL_DIE2 = i++; + SPR_ANGEL_DIE3 = i++; + SPR_ANGEL_DIE4 = i++; + SPR_ANGEL_DIE5 = i++; + SPR_ANGEL_DIE6 = i++; + SPR_ANGEL_DIE7 = i++; + SPR_ANGEL_DEAD = i++; +#endif + // + // player attack frames + // + SPR_KNIFEREADY = i++; + SPR_KNIFEATK1 = i++; + SPR_KNIFEATK2 = i++; + SPR_KNIFEATK3 = i++; + SPR_KNIFEATK4 = i++; + SPR_PISTOLREADY = i++; + SPR_PISTOLATK1 = i++; + SPR_PISTOLATK2 = i++; + SPR_PISTOLATK3 = i++; + SPR_PISTOLATK4 = i++; + SPR_MACHINEGUNREADY = i++; + SPR_MACHINEGUNATK1 = i++; + SPR_MACHINEGUNATK2 = i++; + SPR_MACHINEGUNATK3 = i++; + SPR_MACHINEGUNATK4 = i++; + SPR_CHAINREADY = i++; + SPR_CHAINATK1 = i++; + SPR_CHAINATK2 = i++; + SPR_CHAINATK3 = i++; + SPR_CHAINATK4 = i++; +} diff --git a/sprites.h b/sprites.h new file mode 100644 index 0000000..e5df540 --- /dev/null +++ b/sprites.h @@ -0,0 +1,560 @@ +// +// Copyright(C) 1992 Id Software, Inc. +// Copyright(C) 2007-2011 Moritz "Ripper" Kroll +// Copyright(C) 2020 Fabian Greffrath +// +// 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. +// +// DESCRIPTION: +// Turn sprite "constants" into variables and assign values at run-time. +// + +#ifndef __SPRITES_H__ +#define __SPRITES_H__ + +extern short SPR_DEMO; +extern short SPR_DEATHCAM; +extern short SPR_STAT_0; +extern short SPR_STAT_1; +extern short SPR_STAT_2; +extern short SPR_STAT_3; +extern short SPR_STAT_4; +extern short SPR_STAT_5; +extern short SPR_STAT_6; +extern short SPR_STAT_7; +extern short SPR_STAT_8; +extern short SPR_STAT_9; +extern short SPR_STAT_10; +extern short SPR_STAT_11; +extern short SPR_STAT_12; +extern short SPR_STAT_13; +extern short SPR_STAT_14; +extern short SPR_STAT_15; +extern short SPR_STAT_16; +extern short SPR_STAT_17; +extern short SPR_STAT_18; +extern short SPR_STAT_19; +extern short SPR_STAT_20; +extern short SPR_STAT_21; +extern short SPR_STAT_22; +extern short SPR_STAT_23; +extern short SPR_STAT_24; +extern short SPR_STAT_25; +extern short SPR_STAT_26; +extern short SPR_STAT_27; +extern short SPR_STAT_28; +extern short SPR_STAT_29; +extern short SPR_STAT_30; +extern short SPR_STAT_31; +extern short SPR_STAT_32; +extern short SPR_STAT_33; +extern short SPR_STAT_34; +extern short SPR_STAT_35; +extern short SPR_STAT_36; +extern short SPR_STAT_37; +extern short SPR_STAT_38; +extern short SPR_STAT_39; +extern short SPR_STAT_40; +extern short SPR_STAT_41; +extern short SPR_STAT_42; +extern short SPR_STAT_43; +extern short SPR_STAT_44; +extern short SPR_STAT_45; +extern short SPR_STAT_46; +extern short SPR_STAT_47; +extern short SPR_STAT_48; +extern short SPR_STAT_49; +extern short SPR_STAT_50; +extern short SPR_STAT_51; +extern short SPR_GRD_S_1; +extern short SPR_GRD_S_2; +extern short SPR_GRD_S_3; +extern short SPR_GRD_S_4; +extern short SPR_GRD_S_5; +extern short SPR_GRD_S_6; +extern short SPR_GRD_S_7; +extern short SPR_GRD_S_8; +extern short SPR_GRD_W1_1; +extern short SPR_GRD_W1_2; +extern short SPR_GRD_W1_3; +extern short SPR_GRD_W1_4; +extern short SPR_GRD_W1_5; +extern short SPR_GRD_W1_6; +extern short SPR_GRD_W1_7; +extern short SPR_GRD_W1_8; +extern short SPR_GRD_W2_1; +extern short SPR_GRD_W2_2; +extern short SPR_GRD_W2_3; +extern short SPR_GRD_W2_4; +extern short SPR_GRD_W2_5; +extern short SPR_GRD_W2_6; +extern short SPR_GRD_W2_7; +extern short SPR_GRD_W2_8; +extern short SPR_GRD_W3_1; +extern short SPR_GRD_W3_2; +extern short SPR_GRD_W3_3; +extern short SPR_GRD_W3_4; +extern short SPR_GRD_W3_5; +extern short SPR_GRD_W3_6; +extern short SPR_GRD_W3_7; +extern short SPR_GRD_W3_8; +extern short SPR_GRD_W4_1; +extern short SPR_GRD_W4_2; +extern short SPR_GRD_W4_3; +extern short SPR_GRD_W4_4; +extern short SPR_GRD_W4_5; +extern short SPR_GRD_W4_6; +extern short SPR_GRD_W4_7; +extern short SPR_GRD_W4_8; +extern short SPR_GRD_PAIN_1; +extern short SPR_GRD_DIE_1; +extern short SPR_GRD_DIE_2; +extern short SPR_GRD_DIE_3; +extern short SPR_GRD_PAIN_2; +extern short SPR_GRD_DEAD; +extern short SPR_GRD_SHOOT1; +extern short SPR_GRD_SHOOT2; +extern short SPR_GRD_SHOOT3; +extern short SPR_DOG_W1_1; +extern short SPR_DOG_W1_2; +extern short SPR_DOG_W1_3; +extern short SPR_DOG_W1_4; +extern short SPR_DOG_W1_5; +extern short SPR_DOG_W1_6; +extern short SPR_DOG_W1_7; +extern short SPR_DOG_W1_8; +extern short SPR_DOG_W2_1; +extern short SPR_DOG_W2_2; +extern short SPR_DOG_W2_3; +extern short SPR_DOG_W2_4; +extern short SPR_DOG_W2_5; +extern short SPR_DOG_W2_6; +extern short SPR_DOG_W2_7; +extern short SPR_DOG_W2_8; +extern short SPR_DOG_W3_1; +extern short SPR_DOG_W3_2; +extern short SPR_DOG_W3_3; +extern short SPR_DOG_W3_4; +extern short SPR_DOG_W3_5; +extern short SPR_DOG_W3_6; +extern short SPR_DOG_W3_7; +extern short SPR_DOG_W3_8; +extern short SPR_DOG_W4_1; +extern short SPR_DOG_W4_2; +extern short SPR_DOG_W4_3; +extern short SPR_DOG_W4_4; +extern short SPR_DOG_W4_5; +extern short SPR_DOG_W4_6; +extern short SPR_DOG_W4_7; +extern short SPR_DOG_W4_8; +extern short SPR_DOG_DIE_1; +extern short SPR_DOG_DIE_2; +extern short SPR_DOG_DIE_3; +extern short SPR_DOG_DEAD; +extern short SPR_DOG_JUMP1; +extern short SPR_DOG_JUMP2; +extern short SPR_DOG_JUMP3; +extern short SPR_SS_S_1; +extern short SPR_SS_S_2; +extern short SPR_SS_S_3; +extern short SPR_SS_S_4; +extern short SPR_SS_S_5; +extern short SPR_SS_S_6; +extern short SPR_SS_S_7; +extern short SPR_SS_S_8; +extern short SPR_SS_W1_1; +extern short SPR_SS_W1_2; +extern short SPR_SS_W1_3; +extern short SPR_SS_W1_4; +extern short SPR_SS_W1_5; +extern short SPR_SS_W1_6; +extern short SPR_SS_W1_7; +extern short SPR_SS_W1_8; +extern short SPR_SS_W2_1; +extern short SPR_SS_W2_2; +extern short SPR_SS_W2_3; +extern short SPR_SS_W2_4; +extern short SPR_SS_W2_5; +extern short SPR_SS_W2_6; +extern short SPR_SS_W2_7; +extern short SPR_SS_W2_8; +extern short SPR_SS_W3_1; +extern short SPR_SS_W3_2; +extern short SPR_SS_W3_3; +extern short SPR_SS_W3_4; +extern short SPR_SS_W3_5; +extern short SPR_SS_W3_6; +extern short SPR_SS_W3_7; +extern short SPR_SS_W3_8; +extern short SPR_SS_W4_1; +extern short SPR_SS_W4_2; +extern short SPR_SS_W4_3; +extern short SPR_SS_W4_4; +extern short SPR_SS_W4_5; +extern short SPR_SS_W4_6; +extern short SPR_SS_W4_7; +extern short SPR_SS_W4_8; +extern short SPR_SS_PAIN_1; +extern short SPR_SS_DIE_1; +extern short SPR_SS_DIE_2; +extern short SPR_SS_DIE_3; +extern short SPR_SS_PAIN_2; +extern short SPR_SS_DEAD; +extern short SPR_SS_SHOOT1; +extern short SPR_SS_SHOOT2; +extern short SPR_SS_SHOOT3; +extern short SPR_MUT_S_1; +extern short SPR_MUT_S_2; +extern short SPR_MUT_S_3; +extern short SPR_MUT_S_4; +extern short SPR_MUT_S_5; +extern short SPR_MUT_S_6; +extern short SPR_MUT_S_7; +extern short SPR_MUT_S_8; +extern short SPR_MUT_W1_1; +extern short SPR_MUT_W1_2; +extern short SPR_MUT_W1_3; +extern short SPR_MUT_W1_4; +extern short SPR_MUT_W1_5; +extern short SPR_MUT_W1_6; +extern short SPR_MUT_W1_7; +extern short SPR_MUT_W1_8; +extern short SPR_MUT_W2_1; +extern short SPR_MUT_W2_2; +extern short SPR_MUT_W2_3; +extern short SPR_MUT_W2_4; +extern short SPR_MUT_W2_5; +extern short SPR_MUT_W2_6; +extern short SPR_MUT_W2_7; +extern short SPR_MUT_W2_8; +extern short SPR_MUT_W3_1; +extern short SPR_MUT_W3_2; +extern short SPR_MUT_W3_3; +extern short SPR_MUT_W3_4; +extern short SPR_MUT_W3_5; +extern short SPR_MUT_W3_6; +extern short SPR_MUT_W3_7; +extern short SPR_MUT_W3_8; +extern short SPR_MUT_W4_1; +extern short SPR_MUT_W4_2; +extern short SPR_MUT_W4_3; +extern short SPR_MUT_W4_4; +extern short SPR_MUT_W4_5; +extern short SPR_MUT_W4_6; +extern short SPR_MUT_W4_7; +extern short SPR_MUT_W4_8; +extern short SPR_MUT_PAIN_1; +extern short SPR_MUT_DIE_1; +extern short SPR_MUT_DIE_2; +extern short SPR_MUT_DIE_3; +extern short SPR_MUT_PAIN_2; +extern short SPR_MUT_DIE_4; +extern short SPR_MUT_DEAD; +extern short SPR_MUT_SHOOT1; +extern short SPR_MUT_SHOOT2; +extern short SPR_MUT_SHOOT3; +extern short SPR_MUT_SHOOT4; +extern short SPR_OFC_S_1; +extern short SPR_OFC_S_2; +extern short SPR_OFC_S_3; +extern short SPR_OFC_S_4; +extern short SPR_OFC_S_5; +extern short SPR_OFC_S_6; +extern short SPR_OFC_S_7; +extern short SPR_OFC_S_8; +extern short SPR_OFC_W1_1; +extern short SPR_OFC_W1_2; +extern short SPR_OFC_W1_3; +extern short SPR_OFC_W1_4; +extern short SPR_OFC_W1_5; +extern short SPR_OFC_W1_6; +extern short SPR_OFC_W1_7; +extern short SPR_OFC_W1_8; +extern short SPR_OFC_W2_1; +extern short SPR_OFC_W2_2; +extern short SPR_OFC_W2_3; +extern short SPR_OFC_W2_4; +extern short SPR_OFC_W2_5; +extern short SPR_OFC_W2_6; +extern short SPR_OFC_W2_7; +extern short SPR_OFC_W2_8; +extern short SPR_OFC_W3_1; +extern short SPR_OFC_W3_2; +extern short SPR_OFC_W3_3; +extern short SPR_OFC_W3_4; +extern short SPR_OFC_W3_5; +extern short SPR_OFC_W3_6; +extern short SPR_OFC_W3_7; +extern short SPR_OFC_W3_8; +extern short SPR_OFC_W4_1; +extern short SPR_OFC_W4_2; +extern short SPR_OFC_W4_3; +extern short SPR_OFC_W4_4; +extern short SPR_OFC_W4_5; +extern short SPR_OFC_W4_6; +extern short SPR_OFC_W4_7; +extern short SPR_OFC_W4_8; +extern short SPR_OFC_PAIN_1; +extern short SPR_OFC_DIE_1; +extern short SPR_OFC_DIE_2; +extern short SPR_OFC_DIE_3; +extern short SPR_OFC_PAIN_2; +extern short SPR_OFC_DIE_4; +extern short SPR_OFC_DEAD; +extern short SPR_OFC_SHOOT1; +extern short SPR_OFC_SHOOT2; +extern short SPR_OFC_SHOOT3; +extern short SPR_BLINKY_W1; +extern short SPR_BLINKY_W2; +extern short SPR_PINKY_W1; +extern short SPR_PINKY_W2; +extern short SPR_CLYDE_W1; +extern short SPR_CLYDE_W2; +extern short SPR_INKY_W1; +extern short SPR_INKY_W2; +extern short SPR_BOSS_W1; +extern short SPR_BOSS_W2; +extern short SPR_BOSS_W3; +extern short SPR_BOSS_W4; +extern short SPR_BOSS_SHOOT1; +extern short SPR_BOSS_SHOOT2; +extern short SPR_BOSS_SHOOT3; +extern short SPR_BOSS_DEAD; +extern short SPR_BOSS_DIE1; +extern short SPR_BOSS_DIE2; +extern short SPR_BOSS_DIE3; +extern short SPR_SCHABB_W1; +extern short SPR_SCHABB_W2; +extern short SPR_SCHABB_W3; +extern short SPR_SCHABB_W4; +extern short SPR_SCHABB_SHOOT1; +extern short SPR_SCHABB_SHOOT2; +extern short SPR_SCHABB_DIE1; +extern short SPR_SCHABB_DIE2; +extern short SPR_SCHABB_DIE3; +extern short SPR_SCHABB_DEAD; +extern short SPR_HYPO1; +extern short SPR_HYPO2; +extern short SPR_HYPO3; +extern short SPR_HYPO4; +extern short SPR_FAKE_W1; +extern short SPR_FAKE_W2; +extern short SPR_FAKE_W3; +extern short SPR_FAKE_W4; +extern short SPR_FAKE_SHOOT; +extern short SPR_FIRE1; +extern short SPR_FIRE2; +extern short SPR_FAKE_DIE1; +extern short SPR_FAKE_DIE2; +extern short SPR_FAKE_DIE3; +extern short SPR_FAKE_DIE4; +extern short SPR_FAKE_DIE5; +extern short SPR_FAKE_DEAD; +extern short SPR_MECHA_W1; +extern short SPR_MECHA_W2; +extern short SPR_MECHA_W3; +extern short SPR_MECHA_W4; +extern short SPR_MECHA_SHOOT1; +extern short SPR_MECHA_SHOOT2; +extern short SPR_MECHA_SHOOT3; +extern short SPR_MECHA_DEAD; +extern short SPR_MECHA_DIE1; +extern short SPR_MECHA_DIE2; +extern short SPR_MECHA_DIE3; +extern short SPR_HITLER_W1; +extern short SPR_HITLER_W2; +extern short SPR_HITLER_W3; +extern short SPR_HITLER_W4; +extern short SPR_HITLER_SHOOT1; +extern short SPR_HITLER_SHOOT2; +extern short SPR_HITLER_SHOOT3; +extern short SPR_HITLER_DEAD; +extern short SPR_HITLER_DIE1; +extern short SPR_HITLER_DIE2; +extern short SPR_HITLER_DIE3; +extern short SPR_HITLER_DIE4; +extern short SPR_HITLER_DIE5; +extern short SPR_HITLER_DIE6; +extern short SPR_HITLER_DIE7; +extern short SPR_GIFT_W1; +extern short SPR_GIFT_W2; +extern short SPR_GIFT_W3; +extern short SPR_GIFT_W4; +extern short SPR_GIFT_SHOOT1; +extern short SPR_GIFT_SHOOT2; +extern short SPR_GIFT_DIE1; +extern short SPR_GIFT_DIE2; +extern short SPR_GIFT_DIE3; +extern short SPR_GIFT_DEAD; +extern short SPR_ROCKET_1; +extern short SPR_ROCKET_2; +extern short SPR_ROCKET_3; +extern short SPR_ROCKET_4; +extern short SPR_ROCKET_5; +extern short SPR_ROCKET_6; +extern short SPR_ROCKET_7; +extern short SPR_ROCKET_8; +extern short SPR_SMOKE_1; +extern short SPR_SMOKE_2; +extern short SPR_SMOKE_3; +extern short SPR_SMOKE_4; +extern short SPR_BOOM_1; +extern short SPR_BOOM_2; +extern short SPR_BOOM_3; +extern short SPR_HROCKET_1; +extern short SPR_HROCKET_2; +extern short SPR_HROCKET_3; +extern short SPR_HROCKET_4; +extern short SPR_HROCKET_5; +extern short SPR_HROCKET_6; +extern short SPR_HROCKET_7; +extern short SPR_HROCKET_8; +extern short SPR_HSMOKE_1; +extern short SPR_HSMOKE_2; +extern short SPR_HSMOKE_3; +extern short SPR_HSMOKE_4; +extern short SPR_HBOOM_1; +extern short SPR_HBOOM_2; +extern short SPR_HBOOM_3; +extern short SPR_SPARK1; +extern short SPR_SPARK2; +extern short SPR_SPARK3; +extern short SPR_SPARK4; +extern short SPR_GRETEL_W1; +extern short SPR_GRETEL_W2; +extern short SPR_GRETEL_W3; +extern short SPR_GRETEL_W4; +extern short SPR_GRETEL_SHOOT1; +extern short SPR_GRETEL_SHOOT2; +extern short SPR_GRETEL_SHOOT3; +extern short SPR_GRETEL_DEAD; +extern short SPR_GRETEL_DIE1; +extern short SPR_GRETEL_DIE2; +extern short SPR_GRETEL_DIE3; +extern short SPR_FAT_W1; +extern short SPR_FAT_W2; +extern short SPR_FAT_W3; +extern short SPR_FAT_W4; +extern short SPR_FAT_SHOOT1; +extern short SPR_FAT_SHOOT2; +extern short SPR_FAT_SHOOT3; +extern short SPR_FAT_SHOOT4; +extern short SPR_FAT_DIE1; +extern short SPR_FAT_DIE2; +extern short SPR_FAT_DIE3; +extern short SPR_FAT_DEAD; +extern short SPR_BJ_W1; +extern short SPR_BJ_W2; +extern short SPR_BJ_W3; +extern short SPR_BJ_W4; +extern short SPR_BJ_JUMP1; +extern short SPR_BJ_JUMP2; +extern short SPR_BJ_JUMP3; +extern short SPR_BJ_JUMP4; +extern short SPR_TRANS_W1; +extern short SPR_TRANS_W2; +extern short SPR_TRANS_W3; +extern short SPR_TRANS_W4; +extern short SPR_TRANS_SHOOT1; +extern short SPR_TRANS_SHOOT2; +extern short SPR_TRANS_SHOOT3; +extern short SPR_TRANS_DEAD; +extern short SPR_TRANS_DIE1; +extern short SPR_TRANS_DIE2; +extern short SPR_TRANS_DIE3; +extern short SPR_WILL_W1; +extern short SPR_WILL_W2; +extern short SPR_WILL_W3; +extern short SPR_WILL_W4; +extern short SPR_WILL_SHOOT1; +extern short SPR_WILL_SHOOT2; +extern short SPR_WILL_SHOOT3; +extern short SPR_WILL_SHOOT4; +extern short SPR_WILL_DIE1; +extern short SPR_WILL_DIE2; +extern short SPR_WILL_DIE3; +extern short SPR_WILL_DEAD; +extern short SPR_UBER_W1; +extern short SPR_UBER_W2; +extern short SPR_UBER_W3; +extern short SPR_UBER_W4; +extern short SPR_UBER_SHOOT1; +extern short SPR_UBER_SHOOT2; +extern short SPR_UBER_SHOOT3; +extern short SPR_UBER_SHOOT4; +extern short SPR_UBER_DIE1; +extern short SPR_UBER_DIE2; +extern short SPR_UBER_DIE3; +extern short SPR_UBER_DIE4; +extern short SPR_UBER_DEAD; +extern short SPR_DEATH_W1; +extern short SPR_DEATH_W2; +extern short SPR_DEATH_W3; +extern short SPR_DEATH_W4; +extern short SPR_DEATH_SHOOT1; +extern short SPR_DEATH_SHOOT2; +extern short SPR_DEATH_SHOOT3; +extern short SPR_DEATH_SHOOT4; +extern short SPR_DEATH_DIE1; +extern short SPR_DEATH_DIE2; +extern short SPR_DEATH_DIE3; +extern short SPR_DEATH_DIE4; +extern short SPR_DEATH_DIE5; +extern short SPR_DEATH_DIE6; +extern short SPR_DEATH_DEAD; +extern short SPR_SPECTRE_W1; +extern short SPR_SPECTRE_W2; +extern short SPR_SPECTRE_W3; +extern short SPR_SPECTRE_W4; +extern short SPR_SPECTRE_F1; +extern short SPR_SPECTRE_F2; +extern short SPR_SPECTRE_F3; +extern short SPR_SPECTRE_F4; +extern short SPR_ANGEL_W1; +extern short SPR_ANGEL_W2; +extern short SPR_ANGEL_W3; +extern short SPR_ANGEL_W4; +extern short SPR_ANGEL_SHOOT1; +extern short SPR_ANGEL_SHOOT2; +extern short SPR_ANGEL_TIRED1; +extern short SPR_ANGEL_TIRED2; +extern short SPR_ANGEL_DIE1; +extern short SPR_ANGEL_DIE2; +extern short SPR_ANGEL_DIE3; +extern short SPR_ANGEL_DIE4; +extern short SPR_ANGEL_DIE5; +extern short SPR_ANGEL_DIE6; +extern short SPR_ANGEL_DIE7; +extern short SPR_ANGEL_DEAD; +extern short SPR_KNIFEREADY; +extern short SPR_KNIFEATK1; +extern short SPR_KNIFEATK2; +extern short SPR_KNIFEATK3; +extern short SPR_KNIFEATK4; +extern short SPR_PISTOLREADY; +extern short SPR_PISTOLATK1; +extern short SPR_PISTOLATK2; +extern short SPR_PISTOLATK3; +extern short SPR_PISTOLATK4; +extern short SPR_MACHINEGUNREADY; +extern short SPR_MACHINEGUNATK1; +extern short SPR_MACHINEGUNATK2; +extern short SPR_MACHINEGUNATK3; +extern short SPR_MACHINEGUNATK4; +extern short SPR_CHAINREADY; +extern short SPR_CHAINATK1; +extern short SPR_CHAINATK2; +extern short SPR_CHAINATK3; +extern short SPR_CHAINATK4; + +extern void InitSprites (void); + +#endif diff --git a/states.cpp b/states.cpp index 67d255c..596edcb 100644 --- a/states.cpp +++ b/states.cpp @@ -60,456 +60,456 @@ extern void T_UShoot (objtype *); extern void T_Will (objtype *); statetype states[numstates] = { - {false,0,0,NULL,NULL,s_null}, // s_null - {false,0,0,(statefunc)T_Player,NULL,s_null}, // s_player - {false,0,0,(statefunc)T_Attack,NULL,s_null}, // s_attack - {true,SPR_ROCKET_1,3,(statefunc)T_Projectile,(statefunc)A_Smoke,s_rocket}, // s_rocket - {false,SPR_SMOKE_1,3,NULL,NULL,s_smoke2}, // s_smoke1 - {false,SPR_SMOKE_2,3,NULL,NULL,s_smoke3}, // s_smoke2 - {false,SPR_SMOKE_3,3,NULL,NULL,s_smoke4}, // s_smoke3 - {false,SPR_SMOKE_4,3,NULL,NULL,s_null}, // s_smoke4 - {false,SPR_BOOM_1,6,NULL,NULL,s_boom2}, // s_boom1 - {false,SPR_BOOM_2,6,NULL,NULL,s_boom3}, // s_boom2 - {false,SPR_BOOM_3,6,NULL,NULL,s_null}, // s_boom3 + {false,NULL,0,NULL,NULL,s_null}, // s_null + {false,NULL,0,(statefunc)T_Player,NULL,s_null}, // s_player + {false,NULL,0,(statefunc)T_Attack,NULL,s_null}, // s_attack + {true,&SPR_ROCKET_1,3,(statefunc)T_Projectile,(statefunc)A_Smoke,s_rocket}, // s_rocket + {false,&SPR_SMOKE_1,3,NULL,NULL,s_smoke2}, // s_smoke1 + {false,&SPR_SMOKE_2,3,NULL,NULL,s_smoke3}, // s_smoke2 + {false,&SPR_SMOKE_3,3,NULL,NULL,s_smoke4}, // s_smoke3 + {false,&SPR_SMOKE_4,3,NULL,NULL,s_null}, // s_smoke4 + {false,&SPR_BOOM_1,6,NULL,NULL,s_boom2}, // s_boom1 + {false,&SPR_BOOM_2,6,NULL,NULL,s_boom3}, // s_boom2 + {false,&SPR_BOOM_3,6,NULL,NULL,s_null}, // s_boom3 #ifdef SPEAR - {true,SPR_HROCKET_1,3,(statefunc)T_Projectile,(statefunc)A_Smoke,s_hrocket}, // s_hrocket - {false,SPR_HSMOKE_1,3,NULL,NULL,s_hsmoke2}, // s_hsmoke1 - {false,SPR_HSMOKE_2,3,NULL,NULL,s_hsmoke3}, // s_hsmoke2 - {false,SPR_HSMOKE_3,3,NULL,NULL,s_hsmoke4}, // s_hsmoke3 - {false,SPR_HSMOKE_4,3,NULL,NULL,s_null}, // s_hsmoke4 - {false,SPR_HBOOM_1,6,NULL,NULL,s_hboom2}, // s_hboom1 - {false,SPR_HBOOM_2,6,NULL,NULL,s_hboom3}, // s_hboom2 - {false,SPR_HBOOM_3,6,NULL,NULL,s_null}, // s_hboom3 + {true,&SPR_HROCKET_1,3,(statefunc)T_Projectile,(statefunc)A_Smoke,s_hrocket}, // s_hrocket + {false,&SPR_HSMOKE_1,3,NULL,NULL,s_hsmoke2}, // s_hsmoke1 + {false,&SPR_HSMOKE_2,3,NULL,NULL,s_hsmoke3}, // s_hsmoke2 + {false,&SPR_HSMOKE_3,3,NULL,NULL,s_hsmoke4}, // s_hsmoke3 + {false,&SPR_HSMOKE_4,3,NULL,NULL,s_null}, // s_hsmoke4 + {false,&SPR_HBOOM_1,6,NULL,NULL,s_hboom2}, // s_hboom1 + {false,&SPR_HBOOM_2,6,NULL,NULL,s_hboom3}, // s_hboom2 + {false,&SPR_HBOOM_3,6,NULL,NULL,s_null}, // s_hboom3 #endif - {true,SPR_GRD_S_1,0,(statefunc)T_Stand,NULL,s_grdstand}, // s_grdstand - {true,SPR_GRD_W1_1,20,(statefunc)T_Path,NULL,s_grdpath1s}, // s_grdpath1 - {true,SPR_GRD_W1_1,5,NULL,NULL,s_grdpath2}, // s_grdpath1s - {true,SPR_GRD_W2_1,15,(statefunc)T_Path,NULL,s_grdpath3}, // s_grdpath2 - {true,SPR_GRD_W3_1,20,(statefunc)T_Path,NULL,s_grdpath3s}, // s_grdpath3 - {true,SPR_GRD_W3_1,5,NULL,NULL,s_grdpath4}, // s_grdpath3s - {true,SPR_GRD_W4_1,15,(statefunc)T_Path,NULL,s_grdpath1}, // s_grdpath4 - {2,SPR_GRD_PAIN_1,10,NULL,NULL,s_grdchase1}, // s_grdpain - {2,SPR_GRD_PAIN_2,10,NULL,NULL,s_grdchase1}, // s_grdpain1 - {false,SPR_GRD_SHOOT1,20,NULL,NULL,s_grdshoot2}, // s_grdshoot1 - {false,SPR_GRD_SHOOT2,20,NULL,(statefunc)T_Shoot,s_grdshoot3}, // s_grdshoot2 - {false,SPR_GRD_SHOOT3,20,NULL,NULL,s_grdchase1}, // s_grdshoot3 - {true,SPR_GRD_W1_1,10,(statefunc)T_Chase,NULL,s_grdchase1s}, // s_grdchase1 - {true,SPR_GRD_W1_1,3,NULL,NULL,s_grdchase2}, // s_grdchase1s - {true,SPR_GRD_W2_1,8,(statefunc)T_Chase,NULL,s_grdchase3}, // s_grdchase2 - {true,SPR_GRD_W3_1,10,(statefunc)T_Chase,NULL,s_grdchase3s}, // s_grdchase3 - {true,SPR_GRD_W3_1,3,NULL,NULL,s_grdchase4}, // s_grdchase3s - {true,SPR_GRD_W4_1,8,(statefunc)T_Chase,NULL,s_grdchase1}, // s_grdchase4 - {false,SPR_GRD_DIE_1,15,NULL,(statefunc)A_DeathScream,s_grddie2}, // s_grddie1 - {false,SPR_GRD_DIE_2,15,NULL,NULL,s_grddie3}, // s_grddie2 - {false,SPR_GRD_DIE_3,15,NULL,NULL,s_grddie4}, // s_grddie3 - {false,SPR_GRD_DEAD,0,NULL,NULL,s_grddie4}, // s_grddie4 + {true,&SPR_GRD_S_1,0,(statefunc)T_Stand,NULL,s_grdstand}, // s_grdstand + {true,&SPR_GRD_W1_1,20,(statefunc)T_Path,NULL,s_grdpath1s}, // s_grdpath1 + {true,&SPR_GRD_W1_1,5,NULL,NULL,s_grdpath2}, // s_grdpath1s + {true,&SPR_GRD_W2_1,15,(statefunc)T_Path,NULL,s_grdpath3}, // s_grdpath2 + {true,&SPR_GRD_W3_1,20,(statefunc)T_Path,NULL,s_grdpath3s}, // s_grdpath3 + {true,&SPR_GRD_W3_1,5,NULL,NULL,s_grdpath4}, // s_grdpath3s + {true,&SPR_GRD_W4_1,15,(statefunc)T_Path,NULL,s_grdpath1}, // s_grdpath4 + {2,&SPR_GRD_PAIN_1,10,NULL,NULL,s_grdchase1}, // s_grdpain + {2,&SPR_GRD_PAIN_2,10,NULL,NULL,s_grdchase1}, // s_grdpain1 + {false,&SPR_GRD_SHOOT1,20,NULL,NULL,s_grdshoot2}, // s_grdshoot1 + {false,&SPR_GRD_SHOOT2,20,NULL,(statefunc)T_Shoot,s_grdshoot3}, // s_grdshoot2 + {false,&SPR_GRD_SHOOT3,20,NULL,NULL,s_grdchase1}, // s_grdshoot3 + {true,&SPR_GRD_W1_1,10,(statefunc)T_Chase,NULL,s_grdchase1s}, // s_grdchase1 + {true,&SPR_GRD_W1_1,3,NULL,NULL,s_grdchase2}, // s_grdchase1s + {true,&SPR_GRD_W2_1,8,(statefunc)T_Chase,NULL,s_grdchase3}, // s_grdchase2 + {true,&SPR_GRD_W3_1,10,(statefunc)T_Chase,NULL,s_grdchase3s}, // s_grdchase3 + {true,&SPR_GRD_W3_1,3,NULL,NULL,s_grdchase4}, // s_grdchase3s + {true,&SPR_GRD_W4_1,8,(statefunc)T_Chase,NULL,s_grdchase1}, // s_grdchase4 + {false,&SPR_GRD_DIE_1,15,NULL,(statefunc)A_DeathScream,s_grddie2}, // s_grddie1 + {false,&SPR_GRD_DIE_2,15,NULL,NULL,s_grddie3}, // s_grddie2 + {false,&SPR_GRD_DIE_3,15,NULL,NULL,s_grddie4}, // s_grddie3 + {false,&SPR_GRD_DEAD,0,NULL,NULL,s_grddie4}, // s_grddie4 #ifndef SPEAR - {false,SPR_BLINKY_W1,10,(statefunc)T_Ghosts,NULL,s_blinkychase2}, // s_blinkychase1 - {false,SPR_BLINKY_W2,10,(statefunc)T_Ghosts,NULL,s_blinkychase1}, // s_blinkychase2 - {false,SPR_INKY_W1,10,(statefunc)T_Ghosts,NULL,s_inkychase2}, // s_inkychase1 - {false,SPR_INKY_W2,10,(statefunc)T_Ghosts,NULL,s_inkychase1}, // s_inkychase2 - {false,SPR_PINKY_W1,10,(statefunc)T_Ghosts,NULL,s_pinkychase2}, // s_pinkychase1 - {false,SPR_PINKY_W2,10,(statefunc)T_Ghosts,NULL,s_pinkychase1}, // s_pinkychase2 - {false,SPR_CLYDE_W1,10,(statefunc)T_Ghosts,NULL,s_clydechase2}, // s_clydechase1 - {false,SPR_CLYDE_W2,10,(statefunc)T_Ghosts,NULL,s_clydechase1}, // s_clydechase2 + {false,&SPR_BLINKY_W1,10,(statefunc)T_Ghosts,NULL,s_blinkychase2}, // s_blinkychase1 + {false,&SPR_BLINKY_W2,10,(statefunc)T_Ghosts,NULL,s_blinkychase1}, // s_blinkychase2 + {false,&SPR_INKY_W1,10,(statefunc)T_Ghosts,NULL,s_inkychase2}, // s_inkychase1 + {false,&SPR_INKY_W2,10,(statefunc)T_Ghosts,NULL,s_inkychase1}, // s_inkychase2 + {false,&SPR_PINKY_W1,10,(statefunc)T_Ghosts,NULL,s_pinkychase2}, // s_pinkychase1 + {false,&SPR_PINKY_W2,10,(statefunc)T_Ghosts,NULL,s_pinkychase1}, // s_pinkychase2 + {false,&SPR_CLYDE_W1,10,(statefunc)T_Ghosts,NULL,s_clydechase2}, // s_clydechase1 + {false,&SPR_CLYDE_W2,10,(statefunc)T_Ghosts,NULL,s_clydechase1}, // s_clydechase2 #endif - {true,SPR_DOG_W1_1,20,(statefunc)T_Path,NULL,s_dogpath1s}, // s_dogpath1 - {true,SPR_DOG_W1_1,5,NULL,NULL,s_dogpath2}, // s_dogpath1s - {true,SPR_DOG_W2_1,15,(statefunc)T_Path,NULL,s_dogpath3}, // s_dogpath2 - {true,SPR_DOG_W3_1,20,(statefunc)T_Path,NULL,s_dogpath3s}, // s_dogpath3 - {true,SPR_DOG_W3_1,5,NULL,NULL,s_dogpath4}, // s_dogpath3s - {true,SPR_DOG_W4_1,15,(statefunc)T_Path,NULL,s_dogpath1}, // s_dogpath4 - {false,SPR_DOG_JUMP1,10,NULL,NULL,s_dogjump2}, // s_dogjump1 - {false,SPR_DOG_JUMP2,10,NULL,(statefunc)T_Bite,s_dogjump3}, // s_dogjump2 - {false,SPR_DOG_JUMP3,10,NULL,NULL,s_dogjump4}, // s_dogjump3 - {false,SPR_DOG_JUMP1,10,NULL,NULL,s_dogjump5}, // s_dogjump4 - {false,SPR_DOG_W1_1,10,NULL,NULL,s_dogchase1}, // s_dogjump5 - {true,SPR_DOG_W1_1,10,(statefunc)T_DogChase,NULL,s_dogchase1s}, // s_dogchase1 - {true,SPR_DOG_W1_1,3,NULL,NULL,s_dogchase2}, // s_dogchase1s - {true,SPR_DOG_W2_1,8,(statefunc)T_DogChase,NULL,s_dogchase3}, // s_dogchase2 - {true,SPR_DOG_W3_1,10,(statefunc)T_DogChase,NULL,s_dogchase3s}, // s_dogchase3 - {true,SPR_DOG_W3_1,3,NULL,NULL,s_dogchase4}, // s_dogchase3s - {true,SPR_DOG_W4_1,8,(statefunc)T_DogChase,NULL,s_dogchase1}, // s_dogchase4 - {false,SPR_DOG_DIE_1,15,NULL,(statefunc)A_DeathScream,s_dogdie2}, // s_dogdie1 - {false,SPR_DOG_DIE_2,15,NULL,NULL,s_dogdie3}, // s_dogdie2 - {false,SPR_DOG_DIE_3,15,NULL,NULL,s_dogdead}, // s_dogdie3 - {false,SPR_DOG_DEAD,15,NULL,NULL,s_dogdead}, // s_dogdead - {true,SPR_OFC_S_1,0,(statefunc)T_Stand,NULL,s_ofcstand}, // s_ofcstand - {true,SPR_OFC_W1_1,20,(statefunc)T_Path,NULL,s_ofcpath1s}, // s_ofcpath1 - {true,SPR_OFC_W1_1,5,NULL,NULL,s_ofcpath2}, // s_ofcpath1s - {true,SPR_OFC_W2_1,15,(statefunc)T_Path,NULL,s_ofcpath3}, // s_ofcpath2 - {true,SPR_OFC_W3_1,20,(statefunc)T_Path,NULL,s_ofcpath3s}, // s_ofcpath3 - {true,SPR_OFC_W3_1,5,NULL,NULL,s_ofcpath4}, // s_ofcpath3s - {true,SPR_OFC_W4_1,15,(statefunc)T_Path,NULL,s_ofcpath1}, // s_ofcpath4 - {2,SPR_OFC_PAIN_1,10,NULL,NULL,s_ofcchase1}, // s_ofcpain - {2,SPR_OFC_PAIN_2,10,NULL,NULL,s_ofcchase1}, // s_ofcpain1 - {false,SPR_OFC_SHOOT1,6,NULL,NULL,s_ofcshoot2}, // s_ofcshoot1 - {false,SPR_OFC_SHOOT2,20,NULL,(statefunc)T_Shoot,s_ofcshoot3}, // s_ofcshoot2 - {false,SPR_OFC_SHOOT3,10,NULL,NULL,s_ofcchase1}, // s_ofcshoot3 - {true,SPR_OFC_W1_1,10,(statefunc)T_Chase,NULL,s_ofcchase1s}, // s_ofcchase1 - {true,SPR_OFC_W1_1,3,NULL,NULL,s_ofcchase2}, // s_ofcchase1s - {true,SPR_OFC_W2_1,8,(statefunc)T_Chase,NULL,s_ofcchase3}, // s_ofcchase2 - {true,SPR_OFC_W3_1,10,(statefunc)T_Chase,NULL,s_ofcchase3s}, // s_ofcchase3 - {true,SPR_OFC_W3_1,3,NULL,NULL,s_ofcchase4}, // s_ofcchase3s - {true,SPR_OFC_W4_1,8,(statefunc)T_Chase,NULL,s_ofcchase1}, // s_ofcchase4 - {false,SPR_OFC_DIE_1,11,NULL,(statefunc)A_DeathScream,s_ofcdie2}, // s_ofcdie1 - {false,SPR_OFC_DIE_2,11,NULL,NULL,s_ofcdie3}, // s_ofcdie2 - {false,SPR_OFC_DIE_3,11,NULL,NULL,s_ofcdie4}, // s_ofcdie3 - {false,SPR_OFC_DIE_4,11,NULL,NULL,s_ofcdie5}, // s_ofcdie4 - {false,SPR_OFC_DEAD,0,NULL,NULL,s_ofcdie5}, // s_ofcdie5 - {true,SPR_MUT_S_1,0,(statefunc)T_Stand,NULL,s_mutstand}, // s_mutstand - {true,SPR_MUT_W1_1,20,(statefunc)T_Path,NULL,s_mutpath1s}, // s_mutpath1 - {true,SPR_MUT_W1_1,5,NULL,NULL,s_mutpath2}, // s_mutpath1s - {true,SPR_MUT_W2_1,15,(statefunc)T_Path,NULL,s_mutpath3}, // s_mutpath2 - {true,SPR_MUT_W3_1,20,(statefunc)T_Path,NULL,s_mutpath3s}, // s_mutpath3 - {true,SPR_MUT_W3_1,5,NULL,NULL,s_mutpath4}, // s_mutpath3s - {true,SPR_MUT_W4_1,15,(statefunc)T_Path,NULL,s_mutpath1}, // s_mutpath4 - {2,SPR_MUT_PAIN_1,10,NULL,NULL,s_mutchase1}, // s_mutpain - {2,SPR_MUT_PAIN_2,10,NULL,NULL,s_mutchase1}, // s_mutpain1 - {false,SPR_MUT_SHOOT1,6,NULL,(statefunc)T_Shoot,s_mutshoot2}, // s_mutshoot1 - {false,SPR_MUT_SHOOT2,20,NULL,NULL,s_mutshoot3}, // s_mutshoot2 - {false,SPR_MUT_SHOOT3,10,NULL,(statefunc)T_Shoot,s_mutshoot4}, // s_mutshoot3 - {false,SPR_MUT_SHOOT4,20,NULL,NULL,s_mutchase1}, // s_mutshoot4 - {true,SPR_MUT_W1_1,10,(statefunc)T_Chase,NULL,s_mutchase1s}, // s_mutchase1 - {true,SPR_MUT_W1_1,3,NULL,NULL,s_mutchase2}, // s_mutchase1s - {true,SPR_MUT_W2_1,8,(statefunc)T_Chase,NULL,s_mutchase3}, // s_mutchase2 - {true,SPR_MUT_W3_1,10,(statefunc)T_Chase,NULL,s_mutchase3s}, // s_mutchase3 - {true,SPR_MUT_W3_1,3,NULL,NULL,s_mutchase4}, // s_mutchase3s - {true,SPR_MUT_W4_1,8,(statefunc)T_Chase,NULL,s_mutchase1}, // s_mutchase4 - {false,SPR_MUT_DIE_1,7,NULL,(statefunc)A_DeathScream,s_mutdie2}, // s_mutdie1 - {false,SPR_MUT_DIE_2,7,NULL,NULL,s_mutdie3}, // s_mutdie2 - {false,SPR_MUT_DIE_3,7,NULL,NULL,s_mutdie4}, // s_mutdie3 - {false,SPR_MUT_DIE_4,7,NULL,NULL,s_mutdie5}, // s_mutdie4 - {false,SPR_MUT_DEAD,0,NULL,NULL,s_mutdie5}, // s_mutdie5 - {true,SPR_SS_S_1,0,(statefunc)T_Stand,NULL,s_ssstand}, // s_ssstand - {true,SPR_SS_W1_1,20,(statefunc)T_Path,NULL,s_sspath1s}, // s_sspath1 - {true,SPR_SS_W1_1,5,NULL,NULL,s_sspath2}, // s_sspath1s - {true,SPR_SS_W2_1,15,(statefunc)T_Path,NULL,s_sspath3}, // s_sspath2 - {true,SPR_SS_W3_1,20,(statefunc)T_Path,NULL,s_sspath3s}, // s_sspath3 - {true,SPR_SS_W3_1,5,NULL,NULL,s_sspath4}, // s_sspath3s - {true,SPR_SS_W4_1,15,(statefunc)T_Path,NULL,s_sspath1}, // s_sspath4 - {2,SPR_SS_PAIN_1,10,NULL,NULL,s_sschase1}, // s_sspain - {2,SPR_SS_PAIN_2,10,NULL,NULL,s_sschase1}, // s_sspain1 - {false,SPR_SS_SHOOT1,20,NULL,NULL,s_ssshoot2}, // s_ssshoot1 - {false,SPR_SS_SHOOT2,20,NULL,(statefunc)T_Shoot,s_ssshoot3}, // s_ssshoot2 - {false,SPR_SS_SHOOT3,10,NULL,NULL,s_ssshoot4}, // s_ssshoot3 - {false,SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_ssshoot5}, // s_ssshoot4 - {false,SPR_SS_SHOOT3,10,NULL,NULL,s_ssshoot6}, // s_ssshoot5 - {false,SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_ssshoot7}, // s_ssshoot6 - {false,SPR_SS_SHOOT3,10,NULL,NULL,s_ssshoot8}, // s_ssshoot7 - {false,SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_ssshoot9}, // s_ssshoot8 - {false,SPR_SS_SHOOT3,10,NULL,NULL,s_sschase1}, // s_ssshoot9 - {true,SPR_SS_W1_1,10,(statefunc)T_Chase,NULL,s_sschase1s}, // s_sschase1 - {true,SPR_SS_W1_1,3,NULL,NULL,s_sschase2}, // s_sschase1s - {true,SPR_SS_W2_1,8,(statefunc)T_Chase,NULL,s_sschase3}, // s_sschase2 - {true,SPR_SS_W3_1,10,(statefunc)T_Chase,NULL,s_sschase3s}, // s_sschase3 - {true,SPR_SS_W3_1,3,NULL,NULL,s_sschase4}, // s_sschase3s - {true,SPR_SS_W4_1,8,(statefunc)T_Chase,NULL,s_sschase1}, // s_sschase4 - {false,SPR_SS_DIE_1,15,NULL,(statefunc)A_DeathScream,s_ssdie2}, // s_ssdie1 - {false,SPR_SS_DIE_2,15,NULL,NULL,s_ssdie3}, // s_ssdie2 - {false,SPR_SS_DIE_3,15,NULL,NULL,s_ssdie4}, // s_ssdie3 - {false,SPR_SS_DEAD,0,NULL,NULL,s_ssdie4}, // s_ssdie4 + {true,&SPR_DOG_W1_1,20,(statefunc)T_Path,NULL,s_dogpath1s}, // s_dogpath1 + {true,&SPR_DOG_W1_1,5,NULL,NULL,s_dogpath2}, // s_dogpath1s + {true,&SPR_DOG_W2_1,15,(statefunc)T_Path,NULL,s_dogpath3}, // s_dogpath2 + {true,&SPR_DOG_W3_1,20,(statefunc)T_Path,NULL,s_dogpath3s}, // s_dogpath3 + {true,&SPR_DOG_W3_1,5,NULL,NULL,s_dogpath4}, // s_dogpath3s + {true,&SPR_DOG_W4_1,15,(statefunc)T_Path,NULL,s_dogpath1}, // s_dogpath4 + {false,&SPR_DOG_JUMP1,10,NULL,NULL,s_dogjump2}, // s_dogjump1 + {false,&SPR_DOG_JUMP2,10,NULL,(statefunc)T_Bite,s_dogjump3}, // s_dogjump2 + {false,&SPR_DOG_JUMP3,10,NULL,NULL,s_dogjump4}, // s_dogjump3 + {false,&SPR_DOG_JUMP1,10,NULL,NULL,s_dogjump5}, // s_dogjump4 + {false,&SPR_DOG_W1_1,10,NULL,NULL,s_dogchase1}, // s_dogjump5 + {true,&SPR_DOG_W1_1,10,(statefunc)T_DogChase,NULL,s_dogchase1s}, // s_dogchase1 + {true,&SPR_DOG_W1_1,3,NULL,NULL,s_dogchase2}, // s_dogchase1s + {true,&SPR_DOG_W2_1,8,(statefunc)T_DogChase,NULL,s_dogchase3}, // s_dogchase2 + {true,&SPR_DOG_W3_1,10,(statefunc)T_DogChase,NULL,s_dogchase3s}, // s_dogchase3 + {true,&SPR_DOG_W3_1,3,NULL,NULL,s_dogchase4}, // s_dogchase3s + {true,&SPR_DOG_W4_1,8,(statefunc)T_DogChase,NULL,s_dogchase1}, // s_dogchase4 + {false,&SPR_DOG_DIE_1,15,NULL,(statefunc)A_DeathScream,s_dogdie2}, // s_dogdie1 + {false,&SPR_DOG_DIE_2,15,NULL,NULL,s_dogdie3}, // s_dogdie2 + {false,&SPR_DOG_DIE_3,15,NULL,NULL,s_dogdead}, // s_dogdie3 + {false,&SPR_DOG_DEAD,15,NULL,NULL,s_dogdead}, // s_dogdead + {true,&SPR_OFC_S_1,0,(statefunc)T_Stand,NULL,s_ofcstand}, // s_ofcstand + {true,&SPR_OFC_W1_1,20,(statefunc)T_Path,NULL,s_ofcpath1s}, // s_ofcpath1 + {true,&SPR_OFC_W1_1,5,NULL,NULL,s_ofcpath2}, // s_ofcpath1s + {true,&SPR_OFC_W2_1,15,(statefunc)T_Path,NULL,s_ofcpath3}, // s_ofcpath2 + {true,&SPR_OFC_W3_1,20,(statefunc)T_Path,NULL,s_ofcpath3s}, // s_ofcpath3 + {true,&SPR_OFC_W3_1,5,NULL,NULL,s_ofcpath4}, // s_ofcpath3s + {true,&SPR_OFC_W4_1,15,(statefunc)T_Path,NULL,s_ofcpath1}, // s_ofcpath4 + {2,&SPR_OFC_PAIN_1,10,NULL,NULL,s_ofcchase1}, // s_ofcpain + {2,&SPR_OFC_PAIN_2,10,NULL,NULL,s_ofcchase1}, // s_ofcpain1 + {false,&SPR_OFC_SHOOT1,6,NULL,NULL,s_ofcshoot2}, // s_ofcshoot1 + {false,&SPR_OFC_SHOOT2,20,NULL,(statefunc)T_Shoot,s_ofcshoot3}, // s_ofcshoot2 + {false,&SPR_OFC_SHOOT3,10,NULL,NULL,s_ofcchase1}, // s_ofcshoot3 + {true,&SPR_OFC_W1_1,10,(statefunc)T_Chase,NULL,s_ofcchase1s}, // s_ofcchase1 + {true,&SPR_OFC_W1_1,3,NULL,NULL,s_ofcchase2}, // s_ofcchase1s + {true,&SPR_OFC_W2_1,8,(statefunc)T_Chase,NULL,s_ofcchase3}, // s_ofcchase2 + {true,&SPR_OFC_W3_1,10,(statefunc)T_Chase,NULL,s_ofcchase3s}, // s_ofcchase3 + {true,&SPR_OFC_W3_1,3,NULL,NULL,s_ofcchase4}, // s_ofcchase3s + {true,&SPR_OFC_W4_1,8,(statefunc)T_Chase,NULL,s_ofcchase1}, // s_ofcchase4 + {false,&SPR_OFC_DIE_1,11,NULL,(statefunc)A_DeathScream,s_ofcdie2}, // s_ofcdie1 + {false,&SPR_OFC_DIE_2,11,NULL,NULL,s_ofcdie3}, // s_ofcdie2 + {false,&SPR_OFC_DIE_3,11,NULL,NULL,s_ofcdie4}, // s_ofcdie3 + {false,&SPR_OFC_DIE_4,11,NULL,NULL,s_ofcdie5}, // s_ofcdie4 + {false,&SPR_OFC_DEAD,0,NULL,NULL,s_ofcdie5}, // s_ofcdie5 + {true,&SPR_MUT_S_1,0,(statefunc)T_Stand,NULL,s_mutstand}, // s_mutstand + {true,&SPR_MUT_W1_1,20,(statefunc)T_Path,NULL,s_mutpath1s}, // s_mutpath1 + {true,&SPR_MUT_W1_1,5,NULL,NULL,s_mutpath2}, // s_mutpath1s + {true,&SPR_MUT_W2_1,15,(statefunc)T_Path,NULL,s_mutpath3}, // s_mutpath2 + {true,&SPR_MUT_W3_1,20,(statefunc)T_Path,NULL,s_mutpath3s}, // s_mutpath3 + {true,&SPR_MUT_W3_1,5,NULL,NULL,s_mutpath4}, // s_mutpath3s + {true,&SPR_MUT_W4_1,15,(statefunc)T_Path,NULL,s_mutpath1}, // s_mutpath4 + {2,&SPR_MUT_PAIN_1,10,NULL,NULL,s_mutchase1}, // s_mutpain + {2,&SPR_MUT_PAIN_2,10,NULL,NULL,s_mutchase1}, // s_mutpain1 + {false,&SPR_MUT_SHOOT1,6,NULL,(statefunc)T_Shoot,s_mutshoot2}, // s_mutshoot1 + {false,&SPR_MUT_SHOOT2,20,NULL,NULL,s_mutshoot3}, // s_mutshoot2 + {false,&SPR_MUT_SHOOT3,10,NULL,(statefunc)T_Shoot,s_mutshoot4}, // s_mutshoot3 + {false,&SPR_MUT_SHOOT4,20,NULL,NULL,s_mutchase1}, // s_mutshoot4 + {true,&SPR_MUT_W1_1,10,(statefunc)T_Chase,NULL,s_mutchase1s}, // s_mutchase1 + {true,&SPR_MUT_W1_1,3,NULL,NULL,s_mutchase2}, // s_mutchase1s + {true,&SPR_MUT_W2_1,8,(statefunc)T_Chase,NULL,s_mutchase3}, // s_mutchase2 + {true,&SPR_MUT_W3_1,10,(statefunc)T_Chase,NULL,s_mutchase3s}, // s_mutchase3 + {true,&SPR_MUT_W3_1,3,NULL,NULL,s_mutchase4}, // s_mutchase3s + {true,&SPR_MUT_W4_1,8,(statefunc)T_Chase,NULL,s_mutchase1}, // s_mutchase4 + {false,&SPR_MUT_DIE_1,7,NULL,(statefunc)A_DeathScream,s_mutdie2}, // s_mutdie1 + {false,&SPR_MUT_DIE_2,7,NULL,NULL,s_mutdie3}, // s_mutdie2 + {false,&SPR_MUT_DIE_3,7,NULL,NULL,s_mutdie4}, // s_mutdie3 + {false,&SPR_MUT_DIE_4,7,NULL,NULL,s_mutdie5}, // s_mutdie4 + {false,&SPR_MUT_DEAD,0,NULL,NULL,s_mutdie5}, // s_mutdie5 + {true,&SPR_SS_S_1,0,(statefunc)T_Stand,NULL,s_ssstand}, // s_ssstand + {true,&SPR_SS_W1_1,20,(statefunc)T_Path,NULL,s_sspath1s}, // s_sspath1 + {true,&SPR_SS_W1_1,5,NULL,NULL,s_sspath2}, // s_sspath1s + {true,&SPR_SS_W2_1,15,(statefunc)T_Path,NULL,s_sspath3}, // s_sspath2 + {true,&SPR_SS_W3_1,20,(statefunc)T_Path,NULL,s_sspath3s}, // s_sspath3 + {true,&SPR_SS_W3_1,5,NULL,NULL,s_sspath4}, // s_sspath3s + {true,&SPR_SS_W4_1,15,(statefunc)T_Path,NULL,s_sspath1}, // s_sspath4 + {2,&SPR_SS_PAIN_1,10,NULL,NULL,s_sschase1}, // s_sspain + {2,&SPR_SS_PAIN_2,10,NULL,NULL,s_sschase1}, // s_sspain1 + {false,&SPR_SS_SHOOT1,20,NULL,NULL,s_ssshoot2}, // s_ssshoot1 + {false,&SPR_SS_SHOOT2,20,NULL,(statefunc)T_Shoot,s_ssshoot3}, // s_ssshoot2 + {false,&SPR_SS_SHOOT3,10,NULL,NULL,s_ssshoot4}, // s_ssshoot3 + {false,&SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_ssshoot5}, // s_ssshoot4 + {false,&SPR_SS_SHOOT3,10,NULL,NULL,s_ssshoot6}, // s_ssshoot5 + {false,&SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_ssshoot7}, // s_ssshoot6 + {false,&SPR_SS_SHOOT3,10,NULL,NULL,s_ssshoot8}, // s_ssshoot7 + {false,&SPR_SS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_ssshoot9}, // s_ssshoot8 + {false,&SPR_SS_SHOOT3,10,NULL,NULL,s_sschase1}, // s_ssshoot9 + {true,&SPR_SS_W1_1,10,(statefunc)T_Chase,NULL,s_sschase1s}, // s_sschase1 + {true,&SPR_SS_W1_1,3,NULL,NULL,s_sschase2}, // s_sschase1s + {true,&SPR_SS_W2_1,8,(statefunc)T_Chase,NULL,s_sschase3}, // s_sschase2 + {true,&SPR_SS_W3_1,10,(statefunc)T_Chase,NULL,s_sschase3s}, // s_sschase3 + {true,&SPR_SS_W3_1,3,NULL,NULL,s_sschase4}, // s_sschase3s + {true,&SPR_SS_W4_1,8,(statefunc)T_Chase,NULL,s_sschase1}, // s_sschase4 + {false,&SPR_SS_DIE_1,15,NULL,(statefunc)A_DeathScream,s_ssdie2}, // s_ssdie1 + {false,&SPR_SS_DIE_2,15,NULL,NULL,s_ssdie3}, // s_ssdie2 + {false,&SPR_SS_DIE_3,15,NULL,NULL,s_ssdie4}, // s_ssdie3 + {false,&SPR_SS_DEAD,0,NULL,NULL,s_ssdie4}, // s_ssdie4 #ifndef SPEAR - {false,SPR_BOSS_W1,0,(statefunc)T_Stand,NULL,s_bossstand}, // s_bossstand - {false,SPR_BOSS_W1,10,(statefunc)T_Chase,NULL,s_bosschase1s}, // s_bosschase1 - {false,SPR_BOSS_W1,3,NULL,NULL,s_bosschase2}, // s_bosschase1s - {false,SPR_BOSS_W2,8,(statefunc)T_Chase,NULL,s_bosschase3}, // s_bosschase2 - {false,SPR_BOSS_W3,10,(statefunc)T_Chase,NULL,s_bosschase3s}, // s_bosschase3 - {false,SPR_BOSS_W3,3,NULL,NULL,s_bosschase4}, // s_bosschase3s - {false,SPR_BOSS_W4,8,(statefunc)T_Chase,NULL,s_bosschase1}, // s_bosschase4 - {false,SPR_BOSS_DIE1,15,NULL,(statefunc)A_DeathScream,s_bossdie2}, // s_bossdie1 - {false,SPR_BOSS_DIE2,15,NULL,NULL,s_bossdie3}, // s_bossdie2 - {false,SPR_BOSS_DIE3,15,NULL,NULL,s_bossdie4}, // s_bossdie3 - {false,SPR_BOSS_DEAD,0,NULL,NULL,s_bossdie4}, // s_bossdie4 - {false,SPR_BOSS_SHOOT1,30,NULL,NULL,s_bossshoot2}, // s_bossshoot1 - {false,SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_bossshoot3}, // s_bossshoot2 - {false,SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_bossshoot4}, // s_bossshoot3 - {false,SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_bossshoot5}, // s_bossshoot4 - {false,SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_bossshoot6}, // s_bossshoot5 - {false,SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_bossshoot7}, // s_bossshoot6 - {false,SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_bossshoot8}, // s_bossshoot7 - {false,SPR_BOSS_SHOOT1,10,NULL,NULL,s_bosschase1}, // s_bossshoot8 - {false,SPR_GRETEL_W1,0,(statefunc)T_Stand,NULL,s_gretelstand}, // s_gretelstand - {false,SPR_GRETEL_W1,10,(statefunc)T_Chase,NULL,s_gretelchase1s}, // s_gretelchase1 - {false,SPR_GRETEL_W1,3,NULL,NULL,s_gretelchase2}, // s_gretelchase1s - {false,SPR_GRETEL_W2,8,(statefunc)T_Chase,NULL,s_gretelchase3}, // s_gretelchase2 - {false,SPR_GRETEL_W3,10,(statefunc)T_Chase,NULL,s_gretelchase3s}, // s_gretelchase3 - {false,SPR_GRETEL_W3,3,NULL,NULL,s_gretelchase4}, // s_gretelchase3s - {false,SPR_GRETEL_W4,8,(statefunc)T_Chase,NULL,s_gretelchase1}, // s_gretelchase4 - {false,SPR_GRETEL_DIE1,15,NULL,(statefunc)A_DeathScream,s_greteldie2}, // s_greteldie1 - {false,SPR_GRETEL_DIE2,15,NULL,NULL,s_greteldie3}, // s_greteldie2 - {false,SPR_GRETEL_DIE3,15,NULL,NULL,s_greteldie4}, // s_greteldie3 - {false,SPR_GRETEL_DEAD,0,NULL,NULL,s_greteldie4}, // s_greteldie4 - {false,SPR_GRETEL_SHOOT1,30,NULL,NULL,s_gretelshoot2}, // s_gretelshoot1 - {false,SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,s_gretelshoot3}, // s_gretelshoot2 - {false,SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_gretelshoot4}, // s_gretelshoot3 - {false,SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,s_gretelshoot5}, // s_gretelshoot4 - {false,SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_gretelshoot6}, // s_gretelshoot5 - {false,SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,s_gretelshoot7}, // s_gretelshoot6 - {false,SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_gretelshoot8}, // s_gretelshoot7 - {false,SPR_GRETEL_SHOOT1,10,NULL,NULL,s_gretelchase1}, // s_gretelshoot8 + {false,&SPR_BOSS_W1,0,(statefunc)T_Stand,NULL,s_bossstand}, // s_bossstand + {false,&SPR_BOSS_W1,10,(statefunc)T_Chase,NULL,s_bosschase1s}, // s_bosschase1 + {false,&SPR_BOSS_W1,3,NULL,NULL,s_bosschase2}, // s_bosschase1s + {false,&SPR_BOSS_W2,8,(statefunc)T_Chase,NULL,s_bosschase3}, // s_bosschase2 + {false,&SPR_BOSS_W3,10,(statefunc)T_Chase,NULL,s_bosschase3s}, // s_bosschase3 + {false,&SPR_BOSS_W3,3,NULL,NULL,s_bosschase4}, // s_bosschase3s + {false,&SPR_BOSS_W4,8,(statefunc)T_Chase,NULL,s_bosschase1}, // s_bosschase4 + {false,&SPR_BOSS_DIE1,15,NULL,(statefunc)A_DeathScream,s_bossdie2}, // s_bossdie1 + {false,&SPR_BOSS_DIE2,15,NULL,NULL,s_bossdie3}, // s_bossdie2 + {false,&SPR_BOSS_DIE3,15,NULL,NULL,s_bossdie4}, // s_bossdie3 + {false,&SPR_BOSS_DEAD,0,NULL,NULL,s_bossdie4}, // s_bossdie4 + {false,&SPR_BOSS_SHOOT1,30,NULL,NULL,s_bossshoot2}, // s_bossshoot1 + {false,&SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_bossshoot3}, // s_bossshoot2 + {false,&SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_bossshoot4}, // s_bossshoot3 + {false,&SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_bossshoot5}, // s_bossshoot4 + {false,&SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_bossshoot6}, // s_bossshoot5 + {false,&SPR_BOSS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_bossshoot7}, // s_bossshoot6 + {false,&SPR_BOSS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_bossshoot8}, // s_bossshoot7 + {false,&SPR_BOSS_SHOOT1,10,NULL,NULL,s_bosschase1}, // s_bossshoot8 + {false,&SPR_GRETEL_W1,0,(statefunc)T_Stand,NULL,s_gretelstand}, // s_gretelstand + {false,&SPR_GRETEL_W1,10,(statefunc)T_Chase,NULL,s_gretelchase1s}, // s_gretelchase1 + {false,&SPR_GRETEL_W1,3,NULL,NULL,s_gretelchase2}, // s_gretelchase1s + {false,&SPR_GRETEL_W2,8,(statefunc)T_Chase,NULL,s_gretelchase3}, // s_gretelchase2 + {false,&SPR_GRETEL_W3,10,(statefunc)T_Chase,NULL,s_gretelchase3s}, // s_gretelchase3 + {false,&SPR_GRETEL_W3,3,NULL,NULL,s_gretelchase4}, // s_gretelchase3s + {false,&SPR_GRETEL_W4,8,(statefunc)T_Chase,NULL,s_gretelchase1}, // s_gretelchase4 + {false,&SPR_GRETEL_DIE1,15,NULL,(statefunc)A_DeathScream,s_greteldie2}, // s_greteldie1 + {false,&SPR_GRETEL_DIE2,15,NULL,NULL,s_greteldie3}, // s_greteldie2 + {false,&SPR_GRETEL_DIE3,15,NULL,NULL,s_greteldie4}, // s_greteldie3 + {false,&SPR_GRETEL_DEAD,0,NULL,NULL,s_greteldie4}, // s_greteldie4 + {false,&SPR_GRETEL_SHOOT1,30,NULL,NULL,s_gretelshoot2}, // s_gretelshoot1 + {false,&SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,s_gretelshoot3}, // s_gretelshoot2 + {false,&SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_gretelshoot4}, // s_gretelshoot3 + {false,&SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,s_gretelshoot5}, // s_gretelshoot4 + {false,&SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_gretelshoot6}, // s_gretelshoot5 + {false,&SPR_GRETEL_SHOOT2,10,NULL,(statefunc)T_Shoot,s_gretelshoot7}, // s_gretelshoot6 + {false,&SPR_GRETEL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_gretelshoot8}, // s_gretelshoot7 + {false,&SPR_GRETEL_SHOOT1,10,NULL,NULL,s_gretelchase1}, // s_gretelshoot8 #endif #ifdef SPEAR - {false,SPR_TRANS_W1,0,(statefunc)T_Stand,NULL,s_transstand}, // s_transstand - {false,SPR_TRANS_W1,10,(statefunc)T_Chase,NULL,s_transchase1s}, // s_transchase1 - {false,SPR_TRANS_W1,3,NULL,NULL,s_transchase2}, // s_transchase1s - {false,SPR_TRANS_W2,8,(statefunc)T_Chase,NULL,s_transchase3}, // s_transchase2 - {false,SPR_TRANS_W3,10,(statefunc)T_Chase,NULL,s_transchase3s}, // s_transchase3 - {false,SPR_TRANS_W3,3,NULL,NULL,s_transchase4}, // s_transchase3s - {false,SPR_TRANS_W4,8,(statefunc)T_Chase,NULL,s_transchase1}, // s_transchase4 - {false,SPR_TRANS_W1,1,NULL,(statefunc)A_DeathScream,s_transdie01}, // s_transdie0 - {false,SPR_TRANS_W1,1,NULL,NULL,s_transdie1}, // s_transdie01 - {false,SPR_TRANS_DIE1,15,NULL,NULL,s_transdie2}, // s_transdie1 - {false,SPR_TRANS_DIE2,15,NULL,NULL,s_transdie3}, // s_transdie2 - {false,SPR_TRANS_DIE3,15,NULL,NULL,s_transdie4}, // s_transdie3 - {false,SPR_TRANS_DEAD,0,NULL,NULL,s_transdie4}, // s_transdie4 - {false,SPR_TRANS_SHOOT1,30,NULL,NULL,s_transshoot2}, // s_transshoot1 - {false,SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_transshoot3}, // s_transshoot2 - {false,SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_transshoot4}, // s_transshoot3 - {false,SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_transshoot5}, // s_transshoot4 - {false,SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_transshoot6}, // s_transshoot5 - {false,SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_transshoot7}, // s_transshoot6 - {false,SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_transshoot8}, // s_transshoot7 - {false,SPR_TRANS_SHOOT1,10,NULL,NULL,s_transchase1}, // s_transshoot8 - {false,SPR_UBER_W1,0,(statefunc)T_Stand,NULL,s_uberstand}, // s_uberstand - {false,SPR_UBER_W1,10,(statefunc)T_Chase,NULL,s_uberchase1s}, // s_uberchase1 - {false,SPR_UBER_W1,3,NULL,NULL,s_uberchase2}, // s_uberchase1s - {false,SPR_UBER_W2,8,(statefunc)T_Chase,NULL,s_uberchase3}, // s_uberchase2 - {false,SPR_UBER_W3,10,(statefunc)T_Chase,NULL,s_uberchase3s}, // s_uberchase3 - {false,SPR_UBER_W3,3,NULL,NULL,s_uberchase4}, // s_uberchase3s - {false,SPR_UBER_W4,8,(statefunc)T_Chase,NULL,s_uberchase1}, // s_uberchase4 - {false,SPR_UBER_W1,1,NULL,(statefunc)A_DeathScream,s_uberdie01}, // s_uberdie0 - {false,SPR_UBER_W1,1,NULL,NULL,s_uberdie1}, // s_uberdie01 - {false,SPR_UBER_DIE1,15,NULL,NULL,s_uberdie2}, // s_uberdie1 - {false,SPR_UBER_DIE2,15,NULL,NULL,s_uberdie3}, // s_uberdie2 - {false,SPR_UBER_DIE3,15,NULL,NULL,s_uberdie4}, // s_uberdie3 - {false,SPR_UBER_DIE4,15,NULL,NULL,s_uberdie5}, // s_uberdie4 - {false,SPR_UBER_DEAD,0,NULL,NULL,s_uberdie5}, // s_uberdie5 - {false,SPR_UBER_SHOOT1,30,NULL,NULL,s_ubershoot2}, // s_ubershoot1 - {false,SPR_UBER_SHOOT2,12,NULL,(statefunc)T_UShoot,s_ubershoot3}, // s_ubershoot2 - {false,SPR_UBER_SHOOT3,12,NULL,(statefunc)T_UShoot,s_ubershoot4}, // s_ubershoot3 - {false,SPR_UBER_SHOOT4,12,NULL,(statefunc)T_UShoot,s_ubershoot5}, // s_ubershoot4 - {false,SPR_UBER_SHOOT3,12,NULL,(statefunc)T_UShoot,s_ubershoot6}, // s_ubershoot5 - {false,SPR_UBER_SHOOT2,12,NULL,(statefunc)T_UShoot,s_ubershoot7}, // s_ubershoot6 - {false,SPR_UBER_SHOOT1,12,NULL,NULL,s_uberchase1}, // s_ubershoot7 - {false,SPR_WILL_W1,0,(statefunc)T_Stand,NULL,s_willstand}, // s_willstand - {false,SPR_WILL_W1,10,(statefunc)T_Will,NULL,s_willchase1s}, // s_willchase1 - {false,SPR_WILL_W1,3,NULL,NULL,s_willchase2}, // s_willchase1s - {false,SPR_WILL_W2,8,(statefunc)T_Will,NULL,s_willchase3}, // s_willchase2 - {false,SPR_WILL_W3,10,(statefunc)T_Will,NULL,s_willchase3s}, // s_willchase3 - {false,SPR_WILL_W3,3,NULL,NULL,s_willchase4}, // s_willchase3s - {false,SPR_WILL_W4,8,(statefunc)T_Will,NULL,s_willchase1}, // s_willchase4 - {false,SPR_WILL_W1,1,NULL,NULL,s_willdie1}, // s_willdeathcam - {false,SPR_WILL_W1,1,NULL,(statefunc)A_DeathScream,s_willdie2}, // s_willdie1 - {false,SPR_WILL_W1,10,NULL,NULL,s_willdie3}, // s_willdie2 - {false,SPR_WILL_DIE1,10,NULL,NULL,s_willdie4}, // s_willdie3 - {false,SPR_WILL_DIE2,10,NULL,NULL,s_willdie5}, // s_willdie4 - {false,SPR_WILL_DIE3,10,NULL,NULL,s_willdie6}, // s_willdie5 - {false,SPR_WILL_DEAD,20,NULL,NULL,s_willdie6}, // s_willdie6 - {false,SPR_WILL_SHOOT1,30,NULL,NULL,s_willshoot2}, // s_willshoot1 - {false,SPR_WILL_SHOOT2,10,NULL,(statefunc)T_Launch,s_willshoot3}, // s_willshoot2 - {false,SPR_WILL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_willshoot4}, // s_willshoot3 - {false,SPR_WILL_SHOOT4,10,NULL,(statefunc)T_Shoot,s_willshoot5}, // s_willshoot4 - {false,SPR_WILL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_willshoot6}, // s_willshoot5 - {false,SPR_WILL_SHOOT4,10,NULL,(statefunc)T_Shoot,s_willchase1}, // s_willshoot6 - {false,SPR_DEATH_W1,0,(statefunc)T_Stand,NULL,s_deathstand}, // s_deathstand - {false,SPR_DEATH_W1,10,(statefunc)T_Will,NULL,s_deathchase1s}, // s_deathchase1 - {false,SPR_DEATH_W1,3,NULL,NULL,s_deathchase2}, // s_deathchase1s - {false,SPR_DEATH_W2,8,(statefunc)T_Will,NULL,s_deathchase3}, // s_deathchase2 - {false,SPR_DEATH_W3,10,(statefunc)T_Will,NULL,s_deathchase3s}, // s_deathchase3 - {false,SPR_DEATH_W3,3,NULL,NULL,s_deathchase4}, // s_deathchase3s - {false,SPR_DEATH_W4,8,(statefunc)T_Will,NULL,s_deathchase1}, // s_deathchase4 - {false,SPR_DEATH_W1,1,NULL,NULL,s_deathdie1}, // s_deathdeathcam - {false,SPR_DEATH_W1,1,NULL,(statefunc)A_DeathScream,s_deathdie2}, // s_deathdie1 - {false,SPR_DEATH_W1,10,NULL,NULL,s_deathdie3}, // s_deathdie2 - {false,SPR_DEATH_DIE1,10,NULL,NULL,s_deathdie4}, // s_deathdie3 - {false,SPR_DEATH_DIE2,10,NULL,NULL,s_deathdie5}, // s_deathdie4 - {false,SPR_DEATH_DIE3,10,NULL,NULL,s_deathdie6}, // s_deathdie5 - {false,SPR_DEATH_DIE4,10,NULL,NULL,s_deathdie7}, // s_deathdie6 - {false,SPR_DEATH_DIE5,10,NULL,NULL,s_deathdie8}, // s_deathdie7 - {false,SPR_DEATH_DIE6,10,NULL,NULL,s_deathdie9}, // s_deathdie8 - {false,SPR_DEATH_DEAD,0,NULL,NULL,s_deathdie9}, // s_deathdie9 - {false,SPR_DEATH_SHOOT1,30,NULL,NULL,s_deathshoot2}, // s_deathshoot1 - {false,SPR_DEATH_SHOOT2,10,NULL,(statefunc)T_Launch,s_deathshoot3}, // s_deathshoot2 - {false,SPR_DEATH_SHOOT4,10,NULL,(statefunc)T_Shoot,s_deathshoot4}, // s_deathshoot3 - {false,SPR_DEATH_SHOOT3,10,NULL,(statefunc)T_Launch,s_deathshoot5}, // s_deathshoot4 - {false,SPR_DEATH_SHOOT4,10,NULL,(statefunc)T_Shoot,s_deathchase1}, // s_deathshoot5 - {false,SPR_ANGEL_W1,0,(statefunc)T_Stand,NULL,s_angelstand}, // s_angelstand - {false,SPR_ANGEL_W1,10,(statefunc)T_Will,NULL,s_angelchase1s}, // s_angelchase1 - {false,SPR_ANGEL_W1,3,NULL,NULL,s_angelchase2}, // s_angelchase1s - {false,SPR_ANGEL_W2,8,(statefunc)T_Will,NULL,s_angelchase3}, // s_angelchase2 - {false,SPR_ANGEL_W3,10,(statefunc)T_Will,NULL,s_angelchase3s}, // s_angelchase3 - {false,SPR_ANGEL_W3,3,NULL,NULL,s_angelchase4}, // s_angelchase3s - {false,SPR_ANGEL_W4,8,(statefunc)T_Will,NULL,s_angelchase1}, // s_angelchase4 - {false,SPR_ANGEL_W1,1,NULL,(statefunc)A_DeathScream,s_angeldie11}, // s_angeldie1 - {false,SPR_ANGEL_W1,1,NULL,NULL,s_angeldie2}, // s_angeldie11 - {false,SPR_ANGEL_DIE1,10,NULL,(statefunc)A_Slurpie,s_angeldie3}, // s_angeldie2 - {false,SPR_ANGEL_DIE2,10,NULL,NULL,s_angeldie4}, // s_angeldie3 - {false,SPR_ANGEL_DIE3,10,NULL,NULL,s_angeldie5}, // s_angeldie4 - {false,SPR_ANGEL_DIE4,10,NULL,NULL,s_angeldie6}, // s_angeldie5 - {false,SPR_ANGEL_DIE5,10,NULL,NULL,s_angeldie7}, // s_angeldie6 - {false,SPR_ANGEL_DIE6,10,NULL,NULL,s_angeldie8}, // s_angeldie7 - {false,SPR_ANGEL_DIE7,10,NULL,NULL,s_angeldie9}, // s_angeldie8 - {false,SPR_ANGEL_DEAD,130,NULL,(statefunc)A_Victory,s_angeldie9}, // s_angeldie9 - {false,SPR_ANGEL_SHOOT1,10,NULL,(statefunc)A_StartAttack,s_angelshoot2}, // s_angelshoot1 - {false,SPR_ANGEL_SHOOT2,20,NULL,(statefunc)T_Launch,s_angelshoot3}, // s_angelshoot2 - {false,SPR_ANGEL_SHOOT1,10,NULL,(statefunc)A_Relaunch,s_angelshoot2}, // s_angelshoot3 - {false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angeltired2}, // s_angeltired - {false,SPR_ANGEL_TIRED2,40,NULL,NULL,s_angeltired3}, // s_angeltired2 - {false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angeltired4}, // s_angeltired3 - {false,SPR_ANGEL_TIRED2,40,NULL,NULL,s_angeltired5}, // s_angeltired4 - {false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angeltired6}, // s_angeltired5 - {false,SPR_ANGEL_TIRED2,40,NULL,NULL,s_angeltired7}, // s_angeltired6 - {false,SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angelchase1}, // s_angeltired7 - {false,SPR_SPARK1,6,(statefunc)T_Projectile,NULL,s_spark2}, // s_spark1 - {false,SPR_SPARK2,6,(statefunc)T_Projectile,NULL,s_spark3}, // s_spark2 - {false,SPR_SPARK3,6,(statefunc)T_Projectile,NULL,s_spark4}, // s_spark3 - {false,SPR_SPARK4,6,(statefunc)T_Projectile,NULL,s_spark1}, // s_spark4 - {false,SPR_SPECTRE_W1,10,(statefunc)T_Stand,NULL,s_spectrewait2}, // s_spectrewait1 - {false,SPR_SPECTRE_W2,10,(statefunc)T_Stand,NULL,s_spectrewait3}, // s_spectrewait2 - {false,SPR_SPECTRE_W3,10,(statefunc)T_Stand,NULL,s_spectrewait4}, // s_spectrewait3 - {false,SPR_SPECTRE_W4,10,(statefunc)T_Stand,NULL,s_spectrewait1}, // s_spectrewait4 - {false,SPR_SPECTRE_W1,10,(statefunc)T_Ghosts,NULL,s_spectrechase2}, // s_spectrechase1 - {false,SPR_SPECTRE_W2,10,(statefunc)T_Ghosts,NULL,s_spectrechase3}, // s_spectrechase2 - {false,SPR_SPECTRE_W3,10,(statefunc)T_Ghosts,NULL,s_spectrechase4}, // s_spectrechase3 - {false,SPR_SPECTRE_W4,10,(statefunc)T_Ghosts,NULL,s_spectrechase1}, // s_spectrechase4 - {false,SPR_SPECTRE_F1,10,NULL,NULL,s_spectredie2}, // s_spectredie1 - {false,SPR_SPECTRE_F2,10,NULL,NULL,s_spectredie3}, // s_spectredie2 - {false,SPR_SPECTRE_F3,10,NULL,NULL,s_spectredie4}, // s_spectredie3 - {false,SPR_SPECTRE_F4,300,NULL,NULL,s_spectrewake}, // s_spectredie4 - {false,SPR_SPECTRE_F4,10,NULL,(statefunc)A_Dormant,s_spectrewake}, // s_spectrewake + {false,&SPR_TRANS_W1,0,(statefunc)T_Stand,NULL,s_transstand}, // s_transstand + {false,&SPR_TRANS_W1,10,(statefunc)T_Chase,NULL,s_transchase1s}, // s_transchase1 + {false,&SPR_TRANS_W1,3,NULL,NULL,s_transchase2}, // s_transchase1s + {false,&SPR_TRANS_W2,8,(statefunc)T_Chase,NULL,s_transchase3}, // s_transchase2 + {false,&SPR_TRANS_W3,10,(statefunc)T_Chase,NULL,s_transchase3s}, // s_transchase3 + {false,&SPR_TRANS_W3,3,NULL,NULL,s_transchase4}, // s_transchase3s + {false,&SPR_TRANS_W4,8,(statefunc)T_Chase,NULL,s_transchase1}, // s_transchase4 + {false,&SPR_TRANS_W1,1,NULL,(statefunc)A_DeathScream,s_transdie01}, // s_transdie0 + {false,&SPR_TRANS_W1,1,NULL,NULL,s_transdie1}, // s_transdie01 + {false,&SPR_TRANS_DIE1,15,NULL,NULL,s_transdie2}, // s_transdie1 + {false,&SPR_TRANS_DIE2,15,NULL,NULL,s_transdie3}, // s_transdie2 + {false,&SPR_TRANS_DIE3,15,NULL,NULL,s_transdie4}, // s_transdie3 + {false,&SPR_TRANS_DEAD,0,NULL,NULL,s_transdie4}, // s_transdie4 + {false,&SPR_TRANS_SHOOT1,30,NULL,NULL,s_transshoot2}, // s_transshoot1 + {false,&SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_transshoot3}, // s_transshoot2 + {false,&SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_transshoot4}, // s_transshoot3 + {false,&SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_transshoot5}, // s_transshoot4 + {false,&SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_transshoot6}, // s_transshoot5 + {false,&SPR_TRANS_SHOOT2,10,NULL,(statefunc)T_Shoot,s_transshoot7}, // s_transshoot6 + {false,&SPR_TRANS_SHOOT3,10,NULL,(statefunc)T_Shoot,s_transshoot8}, // s_transshoot7 + {false,&SPR_TRANS_SHOOT1,10,NULL,NULL,s_transchase1}, // s_transshoot8 + {false,&SPR_UBER_W1,0,(statefunc)T_Stand,NULL,s_uberstand}, // s_uberstand + {false,&SPR_UBER_W1,10,(statefunc)T_Chase,NULL,s_uberchase1s}, // s_uberchase1 + {false,&SPR_UBER_W1,3,NULL,NULL,s_uberchase2}, // s_uberchase1s + {false,&SPR_UBER_W2,8,(statefunc)T_Chase,NULL,s_uberchase3}, // s_uberchase2 + {false,&SPR_UBER_W3,10,(statefunc)T_Chase,NULL,s_uberchase3s}, // s_uberchase3 + {false,&SPR_UBER_W3,3,NULL,NULL,s_uberchase4}, // s_uberchase3s + {false,&SPR_UBER_W4,8,(statefunc)T_Chase,NULL,s_uberchase1}, // s_uberchase4 + {false,&SPR_UBER_W1,1,NULL,(statefunc)A_DeathScream,s_uberdie01}, // s_uberdie0 + {false,&SPR_UBER_W1,1,NULL,NULL,s_uberdie1}, // s_uberdie01 + {false,&SPR_UBER_DIE1,15,NULL,NULL,s_uberdie2}, // s_uberdie1 + {false,&SPR_UBER_DIE2,15,NULL,NULL,s_uberdie3}, // s_uberdie2 + {false,&SPR_UBER_DIE3,15,NULL,NULL,s_uberdie4}, // s_uberdie3 + {false,&SPR_UBER_DIE4,15,NULL,NULL,s_uberdie5}, // s_uberdie4 + {false,&SPR_UBER_DEAD,0,NULL,NULL,s_uberdie5}, // s_uberdie5 + {false,&SPR_UBER_SHOOT1,30,NULL,NULL,s_ubershoot2}, // s_ubershoot1 + {false,&SPR_UBER_SHOOT2,12,NULL,(statefunc)T_UShoot,s_ubershoot3}, // s_ubershoot2 + {false,&SPR_UBER_SHOOT3,12,NULL,(statefunc)T_UShoot,s_ubershoot4}, // s_ubershoot3 + {false,&SPR_UBER_SHOOT4,12,NULL,(statefunc)T_UShoot,s_ubershoot5}, // s_ubershoot4 + {false,&SPR_UBER_SHOOT3,12,NULL,(statefunc)T_UShoot,s_ubershoot6}, // s_ubershoot5 + {false,&SPR_UBER_SHOOT2,12,NULL,(statefunc)T_UShoot,s_ubershoot7}, // s_ubershoot6 + {false,&SPR_UBER_SHOOT1,12,NULL,NULL,s_uberchase1}, // s_ubershoot7 + {false,&SPR_WILL_W1,0,(statefunc)T_Stand,NULL,s_willstand}, // s_willstand + {false,&SPR_WILL_W1,10,(statefunc)T_Will,NULL,s_willchase1s}, // s_willchase1 + {false,&SPR_WILL_W1,3,NULL,NULL,s_willchase2}, // s_willchase1s + {false,&SPR_WILL_W2,8,(statefunc)T_Will,NULL,s_willchase3}, // s_willchase2 + {false,&SPR_WILL_W3,10,(statefunc)T_Will,NULL,s_willchase3s}, // s_willchase3 + {false,&SPR_WILL_W3,3,NULL,NULL,s_willchase4}, // s_willchase3s + {false,&SPR_WILL_W4,8,(statefunc)T_Will,NULL,s_willchase1}, // s_willchase4 + {false,&SPR_WILL_W1,1,NULL,NULL,s_willdie1}, // s_willdeathcam + {false,&SPR_WILL_W1,1,NULL,(statefunc)A_DeathScream,s_willdie2}, // s_willdie1 + {false,&SPR_WILL_W1,10,NULL,NULL,s_willdie3}, // s_willdie2 + {false,&SPR_WILL_DIE1,10,NULL,NULL,s_willdie4}, // s_willdie3 + {false,&SPR_WILL_DIE2,10,NULL,NULL,s_willdie5}, // s_willdie4 + {false,&SPR_WILL_DIE3,10,NULL,NULL,s_willdie6}, // s_willdie5 + {false,&SPR_WILL_DEAD,20,NULL,NULL,s_willdie6}, // s_willdie6 + {false,&SPR_WILL_SHOOT1,30,NULL,NULL,s_willshoot2}, // s_willshoot1 + {false,&SPR_WILL_SHOOT2,10,NULL,(statefunc)T_Launch,s_willshoot3}, // s_willshoot2 + {false,&SPR_WILL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_willshoot4}, // s_willshoot3 + {false,&SPR_WILL_SHOOT4,10,NULL,(statefunc)T_Shoot,s_willshoot5}, // s_willshoot4 + {false,&SPR_WILL_SHOOT3,10,NULL,(statefunc)T_Shoot,s_willshoot6}, // s_willshoot5 + {false,&SPR_WILL_SHOOT4,10,NULL,(statefunc)T_Shoot,s_willchase1}, // s_willshoot6 + {false,&SPR_DEATH_W1,0,(statefunc)T_Stand,NULL,s_deathstand}, // s_deathstand + {false,&SPR_DEATH_W1,10,(statefunc)T_Will,NULL,s_deathchase1s}, // s_deathchase1 + {false,&SPR_DEATH_W1,3,NULL,NULL,s_deathchase2}, // s_deathchase1s + {false,&SPR_DEATH_W2,8,(statefunc)T_Will,NULL,s_deathchase3}, // s_deathchase2 + {false,&SPR_DEATH_W3,10,(statefunc)T_Will,NULL,s_deathchase3s}, // s_deathchase3 + {false,&SPR_DEATH_W3,3,NULL,NULL,s_deathchase4}, // s_deathchase3s + {false,&SPR_DEATH_W4,8,(statefunc)T_Will,NULL,s_deathchase1}, // s_deathchase4 + {false,&SPR_DEATH_W1,1,NULL,NULL,s_deathdie1}, // s_deathdeathcam + {false,&SPR_DEATH_W1,1,NULL,(statefunc)A_DeathScream,s_deathdie2}, // s_deathdie1 + {false,&SPR_DEATH_W1,10,NULL,NULL,s_deathdie3}, // s_deathdie2 + {false,&SPR_DEATH_DIE1,10,NULL,NULL,s_deathdie4}, // s_deathdie3 + {false,&SPR_DEATH_DIE2,10,NULL,NULL,s_deathdie5}, // s_deathdie4 + {false,&SPR_DEATH_DIE3,10,NULL,NULL,s_deathdie6}, // s_deathdie5 + {false,&SPR_DEATH_DIE4,10,NULL,NULL,s_deathdie7}, // s_deathdie6 + {false,&SPR_DEATH_DIE5,10,NULL,NULL,s_deathdie8}, // s_deathdie7 + {false,&SPR_DEATH_DIE6,10,NULL,NULL,s_deathdie9}, // s_deathdie8 + {false,&SPR_DEATH_DEAD,0,NULL,NULL,s_deathdie9}, // s_deathdie9 + {false,&SPR_DEATH_SHOOT1,30,NULL,NULL,s_deathshoot2}, // s_deathshoot1 + {false,&SPR_DEATH_SHOOT2,10,NULL,(statefunc)T_Launch,s_deathshoot3}, // s_deathshoot2 + {false,&SPR_DEATH_SHOOT4,10,NULL,(statefunc)T_Shoot,s_deathshoot4}, // s_deathshoot3 + {false,&SPR_DEATH_SHOOT3,10,NULL,(statefunc)T_Launch,s_deathshoot5}, // s_deathshoot4 + {false,&SPR_DEATH_SHOOT4,10,NULL,(statefunc)T_Shoot,s_deathchase1}, // s_deathshoot5 + {false,&SPR_ANGEL_W1,0,(statefunc)T_Stand,NULL,s_angelstand}, // s_angelstand + {false,&SPR_ANGEL_W1,10,(statefunc)T_Will,NULL,s_angelchase1s}, // s_angelchase1 + {false,&SPR_ANGEL_W1,3,NULL,NULL,s_angelchase2}, // s_angelchase1s + {false,&SPR_ANGEL_W2,8,(statefunc)T_Will,NULL,s_angelchase3}, // s_angelchase2 + {false,&SPR_ANGEL_W3,10,(statefunc)T_Will,NULL,s_angelchase3s}, // s_angelchase3 + {false,&SPR_ANGEL_W3,3,NULL,NULL,s_angelchase4}, // s_angelchase3s + {false,&SPR_ANGEL_W4,8,(statefunc)T_Will,NULL,s_angelchase1}, // s_angelchase4 + {false,&SPR_ANGEL_W1,1,NULL,(statefunc)A_DeathScream,s_angeldie11}, // s_angeldie1 + {false,&SPR_ANGEL_W1,1,NULL,NULL,s_angeldie2}, // s_angeldie11 + {false,&SPR_ANGEL_DIE1,10,NULL,(statefunc)A_Slurpie,s_angeldie3}, // s_angeldie2 + {false,&SPR_ANGEL_DIE2,10,NULL,NULL,s_angeldie4}, // s_angeldie3 + {false,&SPR_ANGEL_DIE3,10,NULL,NULL,s_angeldie5}, // s_angeldie4 + {false,&SPR_ANGEL_DIE4,10,NULL,NULL,s_angeldie6}, // s_angeldie5 + {false,&SPR_ANGEL_DIE5,10,NULL,NULL,s_angeldie7}, // s_angeldie6 + {false,&SPR_ANGEL_DIE6,10,NULL,NULL,s_angeldie8}, // s_angeldie7 + {false,&SPR_ANGEL_DIE7,10,NULL,NULL,s_angeldie9}, // s_angeldie8 + {false,&SPR_ANGEL_DEAD,130,NULL,(statefunc)A_Victory,s_angeldie9}, // s_angeldie9 + {false,&SPR_ANGEL_SHOOT1,10,NULL,(statefunc)A_StartAttack,s_angelshoot2}, // s_angelshoot1 + {false,&SPR_ANGEL_SHOOT2,20,NULL,(statefunc)T_Launch,s_angelshoot3}, // s_angelshoot2 + {false,&SPR_ANGEL_SHOOT1,10,NULL,(statefunc)A_Relaunch,s_angelshoot2}, // s_angelshoot3 + {false,&SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angeltired2}, // s_angeltired + {false,&SPR_ANGEL_TIRED2,40,NULL,NULL,s_angeltired3}, // s_angeltired2 + {false,&SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angeltired4}, // s_angeltired3 + {false,&SPR_ANGEL_TIRED2,40,NULL,NULL,s_angeltired5}, // s_angeltired4 + {false,&SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angeltired6}, // s_angeltired5 + {false,&SPR_ANGEL_TIRED2,40,NULL,NULL,s_angeltired7}, // s_angeltired6 + {false,&SPR_ANGEL_TIRED1,40,NULL,(statefunc)A_Breathing,s_angelchase1}, // s_angeltired7 + {false,&SPR_SPARK1,6,(statefunc)T_Projectile,NULL,s_spark2}, // s_spark1 + {false,&SPR_SPARK2,6,(statefunc)T_Projectile,NULL,s_spark3}, // s_spark2 + {false,&SPR_SPARK3,6,(statefunc)T_Projectile,NULL,s_spark4}, // s_spark3 + {false,&SPR_SPARK4,6,(statefunc)T_Projectile,NULL,s_spark1}, // s_spark4 + {false,&SPR_SPECTRE_W1,10,(statefunc)T_Stand,NULL,s_spectrewait2}, // s_spectrewait1 + {false,&SPR_SPECTRE_W2,10,(statefunc)T_Stand,NULL,s_spectrewait3}, // s_spectrewait2 + {false,&SPR_SPECTRE_W3,10,(statefunc)T_Stand,NULL,s_spectrewait4}, // s_spectrewait3 + {false,&SPR_SPECTRE_W4,10,(statefunc)T_Stand,NULL,s_spectrewait1}, // s_spectrewait4 + {false,&SPR_SPECTRE_W1,10,(statefunc)T_Ghosts,NULL,s_spectrechase2}, // s_spectrechase1 + {false,&SPR_SPECTRE_W2,10,(statefunc)T_Ghosts,NULL,s_spectrechase3}, // s_spectrechase2 + {false,&SPR_SPECTRE_W3,10,(statefunc)T_Ghosts,NULL,s_spectrechase4}, // s_spectrechase3 + {false,&SPR_SPECTRE_W4,10,(statefunc)T_Ghosts,NULL,s_spectrechase1}, // s_spectrechase4 + {false,&SPR_SPECTRE_F1,10,NULL,NULL,s_spectredie2}, // s_spectredie1 + {false,&SPR_SPECTRE_F2,10,NULL,NULL,s_spectredie3}, // s_spectredie2 + {false,&SPR_SPECTRE_F3,10,NULL,NULL,s_spectredie4}, // s_spectredie3 + {false,&SPR_SPECTRE_F4,300,NULL,NULL,s_spectrewake}, // s_spectredie4 + {false,&SPR_SPECTRE_F4,10,NULL,(statefunc)A_Dormant,s_spectrewake}, // s_spectrewake #endif #ifndef SPEAR - {false,SPR_SCHABB_W1,0,(statefunc)T_Stand,NULL,s_schabbstand}, // s_schabbstand - {false,SPR_SCHABB_W1,10,(statefunc)T_Schabb,NULL,s_schabbchase1s}, // s_schabbchase1 - {false,SPR_SCHABB_W1,3,NULL,NULL,s_schabbchase2}, // s_schabbchase1s - {false,SPR_SCHABB_W2,8,(statefunc)T_Schabb,NULL,s_schabbchase3}, // s_schabbchase2 - {false,SPR_SCHABB_W3,10,(statefunc)T_Schabb,NULL,s_schabbchase3s}, // s_schabbchase3 - {false,SPR_SCHABB_W3,3,NULL,NULL,s_schabbchase4}, // s_schabbchase3s - {false,SPR_SCHABB_W4,8,(statefunc)T_Schabb,NULL,s_schabbchase1}, // s_schabbchase4 - {false,SPR_SCHABB_W1,1,NULL,NULL,s_schabbdie1}, // s_schabbdeathcam - {false,SPR_SCHABB_W1,10,NULL,(statefunc)A_DeathScream,s_schabbdie2}, // s_schabbdie1 - {false,SPR_SCHABB_W1,10,NULL,NULL,s_schabbdie3}, // s_schabbdie2 - {false,SPR_SCHABB_DIE1,10,NULL,NULL,s_schabbdie4}, // s_schabbdie3 - {false,SPR_SCHABB_DIE2,10,NULL,NULL,s_schabbdie5}, // s_schabbdie4 - {false,SPR_SCHABB_DIE3,10,NULL,NULL,s_schabbdie6}, // s_schabbdie5 - {false,SPR_SCHABB_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_schabbdie6}, // s_schabbdie6 - {false,SPR_SCHABB_SHOOT1,30,NULL,NULL,s_schabbshoot2}, // s_schabbshoot1 - {false,SPR_SCHABB_SHOOT2,10,NULL,(statefunc)T_SchabbThrow,s_schabbchase1}, // s_schabbshoot2 - {false,SPR_HYPO1,6,(statefunc)T_Projectile,NULL,s_needle2}, // s_needle1 - {false,SPR_HYPO2,6,(statefunc)T_Projectile,NULL,s_needle3}, // s_needle2 - {false,SPR_HYPO3,6,(statefunc)T_Projectile,NULL,s_needle4}, // s_needle3 - {false,SPR_HYPO4,6,(statefunc)T_Projectile,NULL,s_needle1}, // s_needle4 - {false,SPR_GIFT_W1,0,(statefunc)T_Stand,NULL,s_giftstand}, // s_giftstand - {false,SPR_GIFT_W1,10,(statefunc)T_Gift,NULL,s_giftchase1s}, // s_giftchase1 - {false,SPR_GIFT_W1,3,NULL,NULL,s_giftchase2}, // s_giftchase1s - {false,SPR_GIFT_W2,8,(statefunc)T_Gift,NULL,s_giftchase3}, // s_giftchase2 - {false,SPR_GIFT_W3,10,(statefunc)T_Gift,NULL,s_giftchase3s}, // s_giftchase3 - {false,SPR_GIFT_W3,3,NULL,NULL,s_giftchase4}, // s_giftchase3s - {false,SPR_GIFT_W4,8,(statefunc)T_Gift,NULL,s_giftchase1}, // s_giftchase4 - {false,SPR_GIFT_W1,1,NULL,NULL,s_giftdie1}, // s_giftdeathcam - {false,SPR_GIFT_W1,1,NULL,(statefunc)A_DeathScream,s_giftdie2}, // s_giftdie1 - {false,SPR_GIFT_W1,10,NULL,NULL,s_giftdie3}, // s_giftdie2 - {false,SPR_GIFT_DIE1,10,NULL,NULL,s_giftdie4}, // s_giftdie3 - {false,SPR_GIFT_DIE2,10,NULL,NULL,s_giftdie5}, // s_giftdie4 - {false,SPR_GIFT_DIE3,10,NULL,NULL,s_giftdie6}, // s_giftdie5 - {false,SPR_GIFT_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_giftdie6}, // s_giftdie6 - {false,SPR_GIFT_SHOOT1,30,NULL,NULL,s_giftshoot2}, // s_giftshoot1 - {false,SPR_GIFT_SHOOT2,10,NULL,(statefunc)T_GiftThrow,s_giftchase1}, // s_giftshoot2 - {false,SPR_FAT_W1,0,(statefunc)T_Stand,NULL,s_fatstand}, // s_fatstand - {false,SPR_FAT_W1,10,(statefunc)T_Fat,NULL,s_fatchase1s}, // s_fatchase1 - {false,SPR_FAT_W1,3,NULL,NULL,s_fatchase2}, // s_fatchase1s - {false,SPR_FAT_W2,8,(statefunc)T_Fat,NULL,s_fatchase3}, // s_fatchase2 - {false,SPR_FAT_W3,10,(statefunc)T_Fat,NULL,s_fatchase3s}, // s_fatchase3 - {false,SPR_FAT_W3,3,NULL,NULL,s_fatchase4}, // s_fatchase3s - {false,SPR_FAT_W4,8,(statefunc)T_Fat,NULL,s_fatchase1}, // s_fatchase4 - {false,SPR_FAT_W1,1,NULL,NULL,s_fatdie1}, // s_fatdeathcam - {false,SPR_FAT_W1,1,NULL,(statefunc)A_DeathScream,s_fatdie2}, // s_fatdie1 - {false,SPR_FAT_W1,10,NULL,NULL,s_fatdie3}, // s_fatdie2 - {false,SPR_FAT_DIE1,10,NULL,NULL,s_fatdie4}, // s_fatdie3 - {false,SPR_FAT_DIE2,10,NULL,NULL,s_fatdie5}, // s_fatdie4 - {false,SPR_FAT_DIE3,10,NULL,NULL,s_fatdie6}, // s_fatdie5 - {false,SPR_FAT_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_fatdie6}, // s_fatdie6 - {false,SPR_FAT_SHOOT1,30,NULL,NULL,s_fatshoot2}, // s_fatshoot1 - {false,SPR_FAT_SHOOT2,10,NULL,(statefunc)T_GiftThrow,s_fatshoot3}, // s_fatshoot2 - {false,SPR_FAT_SHOOT3,10,NULL,(statefunc)T_Shoot,s_fatshoot4}, // s_fatshoot3 - {false,SPR_FAT_SHOOT4,10,NULL,(statefunc)T_Shoot,s_fatshoot5}, // s_fatshoot4 - {false,SPR_FAT_SHOOT3,10,NULL,(statefunc)T_Shoot,s_fatshoot6}, // s_fatshoot5 - {false,SPR_FAT_SHOOT4,10,NULL,(statefunc)T_Shoot,s_fatchase1}, // s_fatshoot6 - {false,SPR_FAKE_W1,0,(statefunc)T_Stand,NULL,s_fakestand}, // s_fakestand - {false,SPR_FAKE_W1,10,(statefunc)T_Fake,NULL,s_fakechase1s}, // s_fakechase1 - {false,SPR_FAKE_W1,3,NULL,NULL,s_fakechase2}, // s_fakechase1s - {false,SPR_FAKE_W2,8,(statefunc)T_Fake,NULL,s_fakechase3}, // s_fakechase2 - {false,SPR_FAKE_W3,10,(statefunc)T_Fake,NULL,s_fakechase3s}, // s_fakechase3 - {false,SPR_FAKE_W3,3,NULL,NULL,s_fakechase4}, // s_fakechase3s - {false,SPR_FAKE_W4,8,(statefunc)T_Fake,NULL,s_fakechase1}, // s_fakechase4 - {false,SPR_FAKE_DIE1,10,NULL,(statefunc)A_DeathScream,s_fakedie2}, // s_fakedie1 - {false,SPR_FAKE_DIE2,10,NULL,NULL,s_fakedie3}, // s_fakedie2 - {false,SPR_FAKE_DIE3,10,NULL,NULL,s_fakedie4}, // s_fakedie3 - {false,SPR_FAKE_DIE4,10,NULL,NULL,s_fakedie5}, // s_fakedie4 - {false,SPR_FAKE_DIE5,10,NULL,NULL,s_fakedie6}, // s_fakedie5 - {false,SPR_FAKE_DEAD,0,NULL,NULL,s_fakedie6}, // s_fakedie6 - {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot2}, // s_fakeshoot1 - {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot3}, // s_fakeshoot2 - {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot4}, // s_fakeshoot3 - {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot5}, // s_fakeshoot4 - {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot6}, // s_fakeshoot5 - {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot7}, // s_fakeshoot6 - {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot8}, // s_fakeshoot7 - {false,SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot9}, // s_fakeshoot8 - {false,SPR_FAKE_SHOOT,8,NULL,NULL,s_fakechase1}, // s_fakeshoot9 - {false,SPR_FIRE1,6,NULL,(statefunc)T_Projectile,s_fire2}, // s_fire1 - {false,SPR_FIRE2,6,NULL,(statefunc)T_Projectile,s_fire1}, // s_fire2 - {false,SPR_MECHA_W1,0,(statefunc)T_Stand,NULL,s_mechastand}, // s_mechastand - {false,SPR_MECHA_W1,10,(statefunc)T_Chase,(statefunc)A_MechaSound,s_mechachase1s}, // s_mechachase1 - {false,SPR_MECHA_W1,6,NULL,NULL,s_mechachase2}, // s_mechachase1s - {false,SPR_MECHA_W2,8,(statefunc)T_Chase,NULL,s_mechachase3}, // s_mechachase2 - {false,SPR_MECHA_W3,10,(statefunc)T_Chase,(statefunc)A_MechaSound,s_mechachase3s}, // s_mechachase3 - {false,SPR_MECHA_W3,6,NULL,NULL,s_mechachase4}, // s_mechachase3s - {false,SPR_MECHA_W4,8,(statefunc)T_Chase,NULL,s_mechachase1}, // s_mechachase4 - {false,SPR_MECHA_DIE1,10,NULL,(statefunc)A_DeathScream,s_mechadie2}, // s_mechadie1 - {false,SPR_MECHA_DIE2,10,NULL,NULL,s_mechadie3}, // s_mechadie2 - {false,SPR_MECHA_DIE3,10,NULL,(statefunc)A_HitlerMorph,s_mechadie4}, // s_mechadie3 - {false,SPR_MECHA_DEAD,0,NULL,NULL,s_mechadie4}, // s_mechadie4 - {false,SPR_MECHA_SHOOT1,30,NULL,NULL,s_mechashoot2}, // s_mechashoot1 - {false,SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,s_mechashoot3}, // s_mechashoot2 - {false,SPR_MECHA_SHOOT3,10,NULL,(statefunc)T_Shoot,s_mechashoot4}, // s_mechashoot3 - {false,SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,s_mechashoot5}, // s_mechashoot4 - {false,SPR_MECHA_SHOOT3,10,NULL,(statefunc)T_Shoot,s_mechashoot6}, // s_mechashoot5 - {false,SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,s_mechachase1}, // s_mechashoot6 - {false,SPR_HITLER_W1,6,(statefunc)T_Chase,NULL,s_hitlerchase1s}, // s_hitlerchase1 - {false,SPR_HITLER_W1,4,NULL,NULL,s_hitlerchase2}, // s_hitlerchase1s - {false,SPR_HITLER_W2,2,(statefunc)T_Chase,NULL,s_hitlerchase3}, // s_hitlerchase2 - {false,SPR_HITLER_W3,6,(statefunc)T_Chase,NULL,s_hitlerchase3s}, // s_hitlerchase3 - {false,SPR_HITLER_W3,4,NULL,NULL,s_hitlerchase4}, // s_hitlerchase3s - {false,SPR_HITLER_W4,2,(statefunc)T_Chase,NULL,s_hitlerchase1}, // s_hitlerchase4 - {false,SPR_HITLER_W1,10,NULL,NULL,s_hitlerdie1}, // s_hitlerdeathcam - {false,SPR_HITLER_W1,1,NULL,(statefunc)A_DeathScream,s_hitlerdie2}, // s_hitlerdie1 - {false,SPR_HITLER_W1,10,NULL,NULL,s_hitlerdie3}, // s_hitlerdie2 - {false,SPR_HITLER_DIE1,10,NULL,(statefunc)A_Slurpie,s_hitlerdie4}, // s_hitlerdie3 - {false,SPR_HITLER_DIE2,10,NULL,NULL,s_hitlerdie5}, // s_hitlerdie4 - {false,SPR_HITLER_DIE3,10,NULL,NULL,s_hitlerdie6}, // s_hitlerdie5 - {false,SPR_HITLER_DIE4,10,NULL,NULL,s_hitlerdie7}, // s_hitlerdie6 - {false,SPR_HITLER_DIE5,10,NULL,NULL,s_hitlerdie8}, // s_hitlerdie7 - {false,SPR_HITLER_DIE6,10,NULL,NULL,s_hitlerdie9}, // s_hitlerdie8 - {false,SPR_HITLER_DIE7,10,NULL,NULL,s_hitlerdie10}, // s_hitlerdie9 - {false,SPR_HITLER_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_hitlerdie10}, // s_hitlerdie10 - {false,SPR_HITLER_SHOOT1,30,NULL,NULL,s_hitlershoot2}, // s_hitlershoot1 - {false,SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,s_hitlershoot3}, // s_hitlershoot2 - {false,SPR_HITLER_SHOOT3,10,NULL,(statefunc)T_Shoot,s_hitlershoot4}, // s_hitlershoot3 - {false,SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,s_hitlershoot5}, // s_hitlershoot4 - {false,SPR_HITLER_SHOOT3,10,NULL,(statefunc)T_Shoot,s_hitlershoot6}, // s_hitlershoot5 - {false,SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,s_hitlerchase1}, // s_hitlershoot6 - {false,SPR_BJ_W1,12,(statefunc)T_BJRun,NULL,s_bjrun1s}, // s_bjrun1 - {false,SPR_BJ_W1,3,NULL,NULL,s_bjrun2}, // s_bjrun1s - {false,SPR_BJ_W2,8,(statefunc)T_BJRun,NULL,s_bjrun3}, // s_bjrun2 - {false,SPR_BJ_W3,12,(statefunc)T_BJRun,NULL,s_bjrun3s}, // s_bjrun3 - {false,SPR_BJ_W3,3,NULL,NULL,s_bjrun4}, // s_bjrun3s - {false,SPR_BJ_W4,8,(statefunc)T_BJRun,NULL,s_bjrun1}, // s_bjrun4 - {false,SPR_BJ_JUMP1,14,(statefunc)T_BJJump,NULL,s_bjjump2}, // s_bjjump1 - {false,SPR_BJ_JUMP2,14,(statefunc)T_BJJump,(statefunc)T_BJYell,s_bjjump3}, // s_bjjump2 - {false,SPR_BJ_JUMP3,14,(statefunc)T_BJJump,NULL,s_bjjump4}, // s_bjjump3 - {false,SPR_BJ_JUMP4,300,NULL,(statefunc)T_BJDone,s_bjjump4}, // s_bjjump4 - {false,0,0,NULL,NULL,s_null}, // s_deathcam + {false,&SPR_SCHABB_W1,0,(statefunc)T_Stand,NULL,s_schabbstand}, // s_schabbstand + {false,&SPR_SCHABB_W1,10,(statefunc)T_Schabb,NULL,s_schabbchase1s}, // s_schabbchase1 + {false,&SPR_SCHABB_W1,3,NULL,NULL,s_schabbchase2}, // s_schabbchase1s + {false,&SPR_SCHABB_W2,8,(statefunc)T_Schabb,NULL,s_schabbchase3}, // s_schabbchase2 + {false,&SPR_SCHABB_W3,10,(statefunc)T_Schabb,NULL,s_schabbchase3s}, // s_schabbchase3 + {false,&SPR_SCHABB_W3,3,NULL,NULL,s_schabbchase4}, // s_schabbchase3s + {false,&SPR_SCHABB_W4,8,(statefunc)T_Schabb,NULL,s_schabbchase1}, // s_schabbchase4 + {false,&SPR_SCHABB_W1,1,NULL,NULL,s_schabbdie1}, // s_schabbdeathcam + {false,&SPR_SCHABB_W1,10,NULL,(statefunc)A_DeathScream,s_schabbdie2}, // s_schabbdie1 + {false,&SPR_SCHABB_W1,10,NULL,NULL,s_schabbdie3}, // s_schabbdie2 + {false,&SPR_SCHABB_DIE1,10,NULL,NULL,s_schabbdie4}, // s_schabbdie3 + {false,&SPR_SCHABB_DIE2,10,NULL,NULL,s_schabbdie5}, // s_schabbdie4 + {false,&SPR_SCHABB_DIE3,10,NULL,NULL,s_schabbdie6}, // s_schabbdie5 + {false,&SPR_SCHABB_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_schabbdie6}, // s_schabbdie6 + {false,&SPR_SCHABB_SHOOT1,30,NULL,NULL,s_schabbshoot2}, // s_schabbshoot1 + {false,&SPR_SCHABB_SHOOT2,10,NULL,(statefunc)T_SchabbThrow,s_schabbchase1}, // s_schabbshoot2 + {false,&SPR_HYPO1,6,(statefunc)T_Projectile,NULL,s_needle2}, // s_needle1 + {false,&SPR_HYPO2,6,(statefunc)T_Projectile,NULL,s_needle3}, // s_needle2 + {false,&SPR_HYPO3,6,(statefunc)T_Projectile,NULL,s_needle4}, // s_needle3 + {false,&SPR_HYPO4,6,(statefunc)T_Projectile,NULL,s_needle1}, // s_needle4 + {false,&SPR_GIFT_W1,0,(statefunc)T_Stand,NULL,s_giftstand}, // s_giftstand + {false,&SPR_GIFT_W1,10,(statefunc)T_Gift,NULL,s_giftchase1s}, // s_giftchase1 + {false,&SPR_GIFT_W1,3,NULL,NULL,s_giftchase2}, // s_giftchase1s + {false,&SPR_GIFT_W2,8,(statefunc)T_Gift,NULL,s_giftchase3}, // s_giftchase2 + {false,&SPR_GIFT_W3,10,(statefunc)T_Gift,NULL,s_giftchase3s}, // s_giftchase3 + {false,&SPR_GIFT_W3,3,NULL,NULL,s_giftchase4}, // s_giftchase3s + {false,&SPR_GIFT_W4,8,(statefunc)T_Gift,NULL,s_giftchase1}, // s_giftchase4 + {false,&SPR_GIFT_W1,1,NULL,NULL,s_giftdie1}, // s_giftdeathcam + {false,&SPR_GIFT_W1,1,NULL,(statefunc)A_DeathScream,s_giftdie2}, // s_giftdie1 + {false,&SPR_GIFT_W1,10,NULL,NULL,s_giftdie3}, // s_giftdie2 + {false,&SPR_GIFT_DIE1,10,NULL,NULL,s_giftdie4}, // s_giftdie3 + {false,&SPR_GIFT_DIE2,10,NULL,NULL,s_giftdie5}, // s_giftdie4 + {false,&SPR_GIFT_DIE3,10,NULL,NULL,s_giftdie6}, // s_giftdie5 + {false,&SPR_GIFT_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_giftdie6}, // s_giftdie6 + {false,&SPR_GIFT_SHOOT1,30,NULL,NULL,s_giftshoot2}, // s_giftshoot1 + {false,&SPR_GIFT_SHOOT2,10,NULL,(statefunc)T_GiftThrow,s_giftchase1}, // s_giftshoot2 + {false,&SPR_FAT_W1,0,(statefunc)T_Stand,NULL,s_fatstand}, // s_fatstand + {false,&SPR_FAT_W1,10,(statefunc)T_Fat,NULL,s_fatchase1s}, // s_fatchase1 + {false,&SPR_FAT_W1,3,NULL,NULL,s_fatchase2}, // s_fatchase1s + {false,&SPR_FAT_W2,8,(statefunc)T_Fat,NULL,s_fatchase3}, // s_fatchase2 + {false,&SPR_FAT_W3,10,(statefunc)T_Fat,NULL,s_fatchase3s}, // s_fatchase3 + {false,&SPR_FAT_W3,3,NULL,NULL,s_fatchase4}, // s_fatchase3s + {false,&SPR_FAT_W4,8,(statefunc)T_Fat,NULL,s_fatchase1}, // s_fatchase4 + {false,&SPR_FAT_W1,1,NULL,NULL,s_fatdie1}, // s_fatdeathcam + {false,&SPR_FAT_W1,1,NULL,(statefunc)A_DeathScream,s_fatdie2}, // s_fatdie1 + {false,&SPR_FAT_W1,10,NULL,NULL,s_fatdie3}, // s_fatdie2 + {false,&SPR_FAT_DIE1,10,NULL,NULL,s_fatdie4}, // s_fatdie3 + {false,&SPR_FAT_DIE2,10,NULL,NULL,s_fatdie5}, // s_fatdie4 + {false,&SPR_FAT_DIE3,10,NULL,NULL,s_fatdie6}, // s_fatdie5 + {false,&SPR_FAT_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_fatdie6}, // s_fatdie6 + {false,&SPR_FAT_SHOOT1,30,NULL,NULL,s_fatshoot2}, // s_fatshoot1 + {false,&SPR_FAT_SHOOT2,10,NULL,(statefunc)T_GiftThrow,s_fatshoot3}, // s_fatshoot2 + {false,&SPR_FAT_SHOOT3,10,NULL,(statefunc)T_Shoot,s_fatshoot4}, // s_fatshoot3 + {false,&SPR_FAT_SHOOT4,10,NULL,(statefunc)T_Shoot,s_fatshoot5}, // s_fatshoot4 + {false,&SPR_FAT_SHOOT3,10,NULL,(statefunc)T_Shoot,s_fatshoot6}, // s_fatshoot5 + {false,&SPR_FAT_SHOOT4,10,NULL,(statefunc)T_Shoot,s_fatchase1}, // s_fatshoot6 + {false,&SPR_FAKE_W1,0,(statefunc)T_Stand,NULL,s_fakestand}, // s_fakestand + {false,&SPR_FAKE_W1,10,(statefunc)T_Fake,NULL,s_fakechase1s}, // s_fakechase1 + {false,&SPR_FAKE_W1,3,NULL,NULL,s_fakechase2}, // s_fakechase1s + {false,&SPR_FAKE_W2,8,(statefunc)T_Fake,NULL,s_fakechase3}, // s_fakechase2 + {false,&SPR_FAKE_W3,10,(statefunc)T_Fake,NULL,s_fakechase3s}, // s_fakechase3 + {false,&SPR_FAKE_W3,3,NULL,NULL,s_fakechase4}, // s_fakechase3s + {false,&SPR_FAKE_W4,8,(statefunc)T_Fake,NULL,s_fakechase1}, // s_fakechase4 + {false,&SPR_FAKE_DIE1,10,NULL,(statefunc)A_DeathScream,s_fakedie2}, // s_fakedie1 + {false,&SPR_FAKE_DIE2,10,NULL,NULL,s_fakedie3}, // s_fakedie2 + {false,&SPR_FAKE_DIE3,10,NULL,NULL,s_fakedie4}, // s_fakedie3 + {false,&SPR_FAKE_DIE4,10,NULL,NULL,s_fakedie5}, // s_fakedie4 + {false,&SPR_FAKE_DIE5,10,NULL,NULL,s_fakedie6}, // s_fakedie5 + {false,&SPR_FAKE_DEAD,0,NULL,NULL,s_fakedie6}, // s_fakedie6 + {false,&SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot2}, // s_fakeshoot1 + {false,&SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot3}, // s_fakeshoot2 + {false,&SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot4}, // s_fakeshoot3 + {false,&SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot5}, // s_fakeshoot4 + {false,&SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot6}, // s_fakeshoot5 + {false,&SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot7}, // s_fakeshoot6 + {false,&SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot8}, // s_fakeshoot7 + {false,&SPR_FAKE_SHOOT,8,NULL,(statefunc)T_FakeFire,s_fakeshoot9}, // s_fakeshoot8 + {false,&SPR_FAKE_SHOOT,8,NULL,NULL,s_fakechase1}, // s_fakeshoot9 + {false,&SPR_FIRE1,6,NULL,(statefunc)T_Projectile,s_fire2}, // s_fire1 + {false,&SPR_FIRE2,6,NULL,(statefunc)T_Projectile,s_fire1}, // s_fire2 + {false,&SPR_MECHA_W1,0,(statefunc)T_Stand,NULL,s_mechastand}, // s_mechastand + {false,&SPR_MECHA_W1,10,(statefunc)T_Chase,(statefunc)A_MechaSound,s_mechachase1s}, // s_mechachase1 + {false,&SPR_MECHA_W1,6,NULL,NULL,s_mechachase2}, // s_mechachase1s + {false,&SPR_MECHA_W2,8,(statefunc)T_Chase,NULL,s_mechachase3}, // s_mechachase2 + {false,&SPR_MECHA_W3,10,(statefunc)T_Chase,(statefunc)A_MechaSound,s_mechachase3s}, // s_mechachase3 + {false,&SPR_MECHA_W3,6,NULL,NULL,s_mechachase4}, // s_mechachase3s + {false,&SPR_MECHA_W4,8,(statefunc)T_Chase,NULL,s_mechachase1}, // s_mechachase4 + {false,&SPR_MECHA_DIE1,10,NULL,(statefunc)A_DeathScream,s_mechadie2}, // s_mechadie1 + {false,&SPR_MECHA_DIE2,10,NULL,NULL,s_mechadie3}, // s_mechadie2 + {false,&SPR_MECHA_DIE3,10,NULL,(statefunc)A_HitlerMorph,s_mechadie4}, // s_mechadie3 + {false,&SPR_MECHA_DEAD,0,NULL,NULL,s_mechadie4}, // s_mechadie4 + {false,&SPR_MECHA_SHOOT1,30,NULL,NULL,s_mechashoot2}, // s_mechashoot1 + {false,&SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,s_mechashoot3}, // s_mechashoot2 + {false,&SPR_MECHA_SHOOT3,10,NULL,(statefunc)T_Shoot,s_mechashoot4}, // s_mechashoot3 + {false,&SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,s_mechashoot5}, // s_mechashoot4 + {false,&SPR_MECHA_SHOOT3,10,NULL,(statefunc)T_Shoot,s_mechashoot6}, // s_mechashoot5 + {false,&SPR_MECHA_SHOOT2,10,NULL,(statefunc)T_Shoot,s_mechachase1}, // s_mechashoot6 + {false,&SPR_HITLER_W1,6,(statefunc)T_Chase,NULL,s_hitlerchase1s}, // s_hitlerchase1 + {false,&SPR_HITLER_W1,4,NULL,NULL,s_hitlerchase2}, // s_hitlerchase1s + {false,&SPR_HITLER_W2,2,(statefunc)T_Chase,NULL,s_hitlerchase3}, // s_hitlerchase2 + {false,&SPR_HITLER_W3,6,(statefunc)T_Chase,NULL,s_hitlerchase3s}, // s_hitlerchase3 + {false,&SPR_HITLER_W3,4,NULL,NULL,s_hitlerchase4}, // s_hitlerchase3s + {false,&SPR_HITLER_W4,2,(statefunc)T_Chase,NULL,s_hitlerchase1}, // s_hitlerchase4 + {false,&SPR_HITLER_W1,10,NULL,NULL,s_hitlerdie1}, // s_hitlerdeathcam + {false,&SPR_HITLER_W1,1,NULL,(statefunc)A_DeathScream,s_hitlerdie2}, // s_hitlerdie1 + {false,&SPR_HITLER_W1,10,NULL,NULL,s_hitlerdie3}, // s_hitlerdie2 + {false,&SPR_HITLER_DIE1,10,NULL,(statefunc)A_Slurpie,s_hitlerdie4}, // s_hitlerdie3 + {false,&SPR_HITLER_DIE2,10,NULL,NULL,s_hitlerdie5}, // s_hitlerdie4 + {false,&SPR_HITLER_DIE3,10,NULL,NULL,s_hitlerdie6}, // s_hitlerdie5 + {false,&SPR_HITLER_DIE4,10,NULL,NULL,s_hitlerdie7}, // s_hitlerdie6 + {false,&SPR_HITLER_DIE5,10,NULL,NULL,s_hitlerdie8}, // s_hitlerdie7 + {false,&SPR_HITLER_DIE6,10,NULL,NULL,s_hitlerdie9}, // s_hitlerdie8 + {false,&SPR_HITLER_DIE7,10,NULL,NULL,s_hitlerdie10}, // s_hitlerdie9 + {false,&SPR_HITLER_DEAD,20,NULL,(statefunc)A_StartDeathCam,s_hitlerdie10}, // s_hitlerdie10 + {false,&SPR_HITLER_SHOOT1,30,NULL,NULL,s_hitlershoot2}, // s_hitlershoot1 + {false,&SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,s_hitlershoot3}, // s_hitlershoot2 + {false,&SPR_HITLER_SHOOT3,10,NULL,(statefunc)T_Shoot,s_hitlershoot4}, // s_hitlershoot3 + {false,&SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,s_hitlershoot5}, // s_hitlershoot4 + {false,&SPR_HITLER_SHOOT3,10,NULL,(statefunc)T_Shoot,s_hitlershoot6}, // s_hitlershoot5 + {false,&SPR_HITLER_SHOOT2,10,NULL,(statefunc)T_Shoot,s_hitlerchase1}, // s_hitlershoot6 + {false,&SPR_BJ_W1,12,(statefunc)T_BJRun,NULL,s_bjrun1s}, // s_bjrun1 + {false,&SPR_BJ_W1,3,NULL,NULL,s_bjrun2}, // s_bjrun1s + {false,&SPR_BJ_W2,8,(statefunc)T_BJRun,NULL,s_bjrun3}, // s_bjrun2 + {false,&SPR_BJ_W3,12,(statefunc)T_BJRun,NULL,s_bjrun3s}, // s_bjrun3 + {false,&SPR_BJ_W3,3,NULL,NULL,s_bjrun4}, // s_bjrun3s + {false,&SPR_BJ_W4,8,(statefunc)T_BJRun,NULL,s_bjrun1}, // s_bjrun4 + {false,&SPR_BJ_JUMP1,14,(statefunc)T_BJJump,NULL,s_bjjump2}, // s_bjjump1 + {false,&SPR_BJ_JUMP2,14,(statefunc)T_BJJump,(statefunc)T_BJYell,s_bjjump3}, // s_bjjump2 + {false,&SPR_BJ_JUMP3,14,(statefunc)T_BJJump,NULL,s_bjjump4}, // s_bjjump3 + {false,&SPR_BJ_JUMP4,300,NULL,(statefunc)T_BJDone,s_bjjump4}, // s_bjjump4 + {false,NULL,0,NULL,NULL,s_null}, // s_deathcam #endif }; diff --git a/wl_act1.cpp b/wl_act1.cpp index 910c6a7..91d9872 100644 --- a/wl_act1.cpp +++ b/wl_act1.cpp @@ -17,107 +17,107 @@ statobj_t *laststatobj; struct { - short picnum; + short *picnum; wl_stat_t type; uint32_t specialFlags; // they are ORed to the statobj_t flags } statinfo[] = { - {SPR_STAT_0}, // puddle spr1v - {SPR_STAT_1,block}, // Green Barrel " - {SPR_STAT_2,block}, // Table/chairs " - {SPR_STAT_3,block,FL_FULLBRIGHT}, // Floor lamp " - {SPR_STAT_4,none,FL_FULLBRIGHT}, // Chandelier " - {SPR_STAT_5,block}, // Hanged man " - {SPR_STAT_6,bo_alpo}, // Bad food " - {SPR_STAT_7,block}, // Red pillar " + {&SPR_STAT_0}, // puddle spr1v + {&SPR_STAT_1,block}, // Green Barrel " + {&SPR_STAT_2,block}, // Table/chairs " + {&SPR_STAT_3,block,FL_FULLBRIGHT}, // Floor lamp " + {&SPR_STAT_4,none,FL_FULLBRIGHT}, // Chandelier " + {&SPR_STAT_5,block}, // Hanged man " + {&SPR_STAT_6,bo_alpo}, // Bad food " + {&SPR_STAT_7,block}, // Red pillar " // // NEW PAGE // - {SPR_STAT_8,block}, // Tree spr2v - {SPR_STAT_9}, // Skeleton flat " - {SPR_STAT_10,block}, // Sink " (SOD:gibs) - {SPR_STAT_11,block}, // Potted plant " - {SPR_STAT_12,block}, // Urn " - {SPR_STAT_13,block}, // Bare table " - {SPR_STAT_14,none,FL_FULLBRIGHT}, // Ceiling light " + {&SPR_STAT_8,block}, // Tree spr2v + {&SPR_STAT_9}, // Skeleton flat " + {&SPR_STAT_10,block}, // Sink " (SOD:gibs) + {&SPR_STAT_11,block}, // Potted plant " + {&SPR_STAT_12,block}, // Urn " + {&SPR_STAT_13,block}, // Bare table " + {&SPR_STAT_14,none,FL_FULLBRIGHT}, // Ceiling light " #ifndef SPEAR - {SPR_STAT_15}, // Kitchen stuff " + {&SPR_STAT_15}, // Kitchen stuff " #else - {SPR_STAT_15,block}, // Gibs! + {&SPR_STAT_15,block}, // Gibs! #endif // // NEW PAGE // - {SPR_STAT_16,block}, // suit of armor spr3v - {SPR_STAT_17,block}, // Hanging cage " - {SPR_STAT_18,block}, // SkeletoninCage " - {SPR_STAT_19}, // Skeleton relax " - {SPR_STAT_20,bo_key1}, // Key 1 " - {SPR_STAT_21,bo_key2}, // Key 2 " - {SPR_STAT_22,block}, // stuff (SOD:gibs) - {SPR_STAT_23}, // stuff + {&SPR_STAT_16,block}, // suit of armor spr3v + {&SPR_STAT_17,block}, // Hanging cage " + {&SPR_STAT_18,block}, // SkeletoninCage " + {&SPR_STAT_19}, // Skeleton relax " + {&SPR_STAT_20,bo_key1}, // Key 1 " + {&SPR_STAT_21,bo_key2}, // Key 2 " + {&SPR_STAT_22,block}, // stuff (SOD:gibs) + {&SPR_STAT_23}, // stuff // // NEW PAGE // - {SPR_STAT_24,bo_food}, // Good food spr4v - {SPR_STAT_25,bo_firstaid}, // First aid " - {SPR_STAT_26,bo_clip}, // Clip " - {SPR_STAT_27,bo_machinegun}, // Machine gun " - {SPR_STAT_28,bo_chaingun}, // Gatling gun " - {SPR_STAT_29,bo_cross}, // Cross " - {SPR_STAT_30,bo_chalice}, // Chalice " - {SPR_STAT_31,bo_bible}, // Bible " + {&SPR_STAT_24,bo_food}, // Good food spr4v + {&SPR_STAT_25,bo_firstaid}, // First aid " + {&SPR_STAT_26,bo_clip}, // Clip " + {&SPR_STAT_27,bo_machinegun}, // Machine gun " + {&SPR_STAT_28,bo_chaingun}, // Gatling gun " + {&SPR_STAT_29,bo_cross}, // Cross " + {&SPR_STAT_30,bo_chalice}, // Chalice " + {&SPR_STAT_31,bo_bible}, // Bible " // // NEW PAGE // - {SPR_STAT_32,bo_crown}, // crown spr5v - {SPR_STAT_33,bo_fullheal,FL_FULLBRIGHT},// one up " - {SPR_STAT_34,bo_gibs}, // gibs " - {SPR_STAT_35,block}, // barrel " - {SPR_STAT_36,block}, // well " - {SPR_STAT_37,block}, // Empty well " - {SPR_STAT_38,bo_gibs}, // Gibs 2 " - {SPR_STAT_39,block}, // flag " + {&SPR_STAT_32,bo_crown}, // crown spr5v + {&SPR_STAT_33,bo_fullheal,FL_FULLBRIGHT},// one up " + {&SPR_STAT_34,bo_gibs}, // gibs " + {&SPR_STAT_35,block}, // barrel " + {&SPR_STAT_36,block}, // well " + {&SPR_STAT_37,block}, // Empty well " + {&SPR_STAT_38,bo_gibs}, // Gibs 2 " + {&SPR_STAT_39,block}, // flag " // // NEW PAGE // #ifndef SPEAR - {SPR_STAT_40,block}, // Call Apogee spr7v + {&SPR_STAT_40,block}, // Call Apogee spr7v #else - {SPR_STAT_40}, // Red light + {&SPR_STAT_40}, // Red light #endif // // NEW PAGE // - {SPR_STAT_41}, // junk " - {SPR_STAT_42}, // junk " - {SPR_STAT_43}, // junk " + {&SPR_STAT_41}, // junk " + {&SPR_STAT_42}, // junk " + {&SPR_STAT_43}, // junk " #ifndef SPEAR - {SPR_STAT_44}, // pots " + {&SPR_STAT_44}, // pots " #else - {SPR_STAT_44,block}, // Gibs! + {&SPR_STAT_44,block}, // Gibs! #endif - {SPR_STAT_45,block}, // stove " (SOD:gibs) - {SPR_STAT_46,block}, // spears " (SOD:gibs) - {SPR_STAT_47}, // vines " + {&SPR_STAT_45,block}, // stove " (SOD:gibs) + {&SPR_STAT_46,block}, // spears " (SOD:gibs) + {&SPR_STAT_47}, // vines " // // NEW PAGE // #ifdef SPEAR - {SPR_STAT_48,block}, // marble pillar - {SPR_STAT_49,bo_25clip}, // bonus 25 clip - {SPR_STAT_50,block}, // truck - {SPR_STAT_51,bo_spear}, // SPEAR OF DESTINY! + {&SPR_STAT_48,block}, // marble pillar + {&SPR_STAT_49,bo_25clip}, // bonus 25 clip + {&SPR_STAT_50,block}, // truck + {&SPR_STAT_51,bo_spear}, // SPEAR OF DESTINY! #endif - {SPR_STAT_26,bo_clip2}, // Clip " + {&SPR_STAT_26,bo_clip2}, // Clip " #ifdef USE_DIR3DSPR // These are just two examples showing the new way of using dir 3d sprites. // You can find the allowed values in the objflag_t enum in wl_def.h. - {SPR_STAT_47,none,FL_DIR_VERT_MID}, - {SPR_STAT_47,block,FL_DIR_HORIZ_MID}, + {&SPR_STAT_47,none,FL_DIR_VERT_MID}, + {&SPR_STAT_47,block,FL_DIR_HORIZ_MID}, #endif - {-1} // terminator + {NULL} // terminator }; /* @@ -217,7 +217,7 @@ void PlaceItemType (int itemtype, int tilex, int tiley) // for (type=0; ; type++) { - if (statinfo[type].picnum == -1) // end of list + if (statinfo[type].picnum == NULL) // end of list Quit ("PlaceItemType: couldn't find type!"); if (statinfo[type].type == itemtype) break; @@ -236,7 +236,7 @@ void PlaceItemType (int itemtype, int tilex, int tiley) break; } - if (spot->shapenum == -1) // -1 is a free spot + if (spot->shapenum == NULL) // -1 is a free spot break; } // diff --git a/wl_agent.cpp b/wl_agent.cpp index 759711e..d3b6a9b 100644 --- a/wl_agent.cpp +++ b/wl_agent.cpp @@ -802,7 +802,7 @@ void GetBonus (statobj_t *check) } StartBonusFlash (); - check->shapenum = -1; // remove from list + check->shapenum = NULL; // remove from list } /* diff --git a/wl_debug.cpp b/wl_debug.cpp index 9742120..8431031 100644 --- a/wl_debug.cpp +++ b/wl_debug.cpp @@ -83,7 +83,7 @@ void CountObjects (void) US_Print ("\nIn use statics:"); for (i=0;itemp1 + short *shapenum; // a shapenum of -1 means get from ob->temp1 short tictime; void (*think) (void *),(*action) (void *); statenum_t next; // [FG] statetype states[] array @@ -747,7 +426,7 @@ extern statetype states[numstates]; // [FG] statetype states[] array typedef PACKED_STRUCT( statstruct { byte tilex,tiley; - short shapenum; // if shapenum == -1 the obj has been removed + short *shapenum; // if shapenum == -1 the obj has been removed byte *visspot; uint32_t flags; byte itemnumber; diff --git a/wl_draw.cpp b/wl_draw.cpp index a8bc9c5..7e8f8c7 100644 --- a/wl_draw.cpp +++ b/wl_draw.cpp @@ -868,7 +868,7 @@ typedef struct { short viewx, viewheight, - shapenum; + *shapenum; short flags; // this must be changed to uint32_t, when you // you need more than 16-flags for drawing #ifdef USE_DIR3DSPR @@ -895,7 +895,7 @@ void DrawScaleds (void) // for (statptr = &statobjlist[0] ; statptr !=laststatobj ; statptr++) { - if ((visptr->shapenum = statptr->shapenum) == -1) + if ((visptr->shapenum = statptr->shapenum) == NULL) continue; // object has been deleted if (!*statptr->visspot) @@ -905,7 +905,7 @@ void DrawScaleds (void) &visptr->viewx,&visptr->viewheight) && statptr->flags & FL_BONUS) { GetBonus (statptr); - if(statptr->shapenum == -1) + if(statptr->shapenum == NULL) continue; // object has been taken } @@ -931,7 +931,7 @@ void DrawScaleds (void) // for (obj = player->next;obj;obj=obj->next) { - if ((visptr->shapenum = obj->state->shapenum)==0) + if ((visptr->shapenum = obj->state->shapenum)==NULL) continue; // no shape spotloc = (obj->tilex<tiley; // optimize: keep in struct? @@ -958,8 +958,11 @@ void DrawScaleds (void) visptr->viewx = obj->viewx; visptr->viewheight = obj->viewheight; - if (visptr->shapenum == -1) - visptr->shapenum = obj->temp1; // special shape + if (*visptr->shapenum == -1) + { + void *temp1 = &obj->temp1; + visptr->shapenum = (short *)temp1; // special shape + } if (obj->state->rotate) visptr->shapenum += CalcRotate (obj); @@ -1006,7 +1009,7 @@ void DrawScaleds (void) Scale3DShape(vbuf, vbufPitch, farthest->transsprite); else #endif - ScaleShape(farthest->viewx, farthest->shapenum, farthest->viewheight, farthest->flags); + ScaleShape(farthest->viewx, *farthest->shapenum, farthest->viewheight, farthest->flags); farthest->viewheight = 32000; } @@ -1024,8 +1027,8 @@ void DrawScaleds (void) ============== */ -int weaponscale[NUMWEAPONS] = {SPR_KNIFEREADY, SPR_PISTOLREADY, - SPR_MACHINEGUNREADY, SPR_CHAINREADY}; +short *weaponscale[NUMWEAPONS] = {&SPR_KNIFEREADY, &SPR_PISTOLREADY, + &SPR_MACHINEGUNREADY, &SPR_CHAINREADY}; void DrawPlayerWeapon (void) { @@ -1044,7 +1047,7 @@ void DrawPlayerWeapon (void) if (gamestate.weapon != wp_none) { - shapenum = weaponscale[gamestate.weapon]+gamestate.weaponframe; + shapenum = *weaponscale[gamestate.weapon]+gamestate.weaponframe; SimpleScaleShape(viewwidth/2,shapenum,viewheight+1); } diff --git a/wl_game.cpp b/wl_game.cpp index 86945dc..d348b60 100644 --- a/wl_game.cpp +++ b/wl_game.cpp @@ -701,6 +701,7 @@ void SetupGameLevel (void) // // spawn doors // + InitSprites (); InitActorList (); // start spawning things with a clean slate InitDoorList (); InitStaticList (); From 960349fcd9ca60427555a547e4471c0afa2a52b7 Mon Sep 17 00:00:00 2001 From: Fabian Greffrath Date: Tue, 25 Jan 2022 09:30:56 +0100 Subject: [PATCH 2/2] fixes to shapenum handling --- states.cpp | 15 +++++++++++++++ states.h | 2 ++ version.h | 4 ++-- wl_draw.cpp | 7 +++---- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/states.cpp b/states.cpp index 596edcb..c99d631 100644 --- a/states.cpp +++ b/states.cpp @@ -513,3 +513,18 @@ statetype states[numstates] = { {false,NULL,0,NULL,NULL,s_null}, // s_deathcam #endif }; + +short *ShapePtr (short shapenum) +{ + int i; + + for (i = 0; i < numstates; i++) + { + if (*states[i].shapenum == shapenum) + { + return states[i].shapenum; + } + } + + return NULL; +} diff --git a/states.h b/states.h index 884b0a8..11824d3 100644 --- a/states.h +++ b/states.h @@ -482,4 +482,6 @@ typedef enum numstates } statenum_t; +extern short *ShapePtr (short shapenum); + #endif diff --git a/version.h b/version.h index b9c6607..cfa4ac6 100644 --- a/version.h +++ b/version.h @@ -7,8 +7,8 @@ //#define SPEAR //#define SPEARDEMO -//#define UPLOAD -#define GOODTIMES +#define UPLOAD +//#define GOODTIMES #define CARMACIZED //#define APOGEE_1_0 //#define APOGEE_1_1 diff --git a/wl_draw.cpp b/wl_draw.cpp index 7e8f8c7..2fa00a2 100644 --- a/wl_draw.cpp +++ b/wl_draw.cpp @@ -931,7 +931,7 @@ void DrawScaleds (void) // for (obj = player->next;obj;obj=obj->next) { - if ((visptr->shapenum = obj->state->shapenum)==NULL) + if (*(visptr->shapenum = obj->state->shapenum)==0) continue; // no shape spotloc = (obj->tilex<tiley; // optimize: keep in struct? @@ -958,10 +958,9 @@ void DrawScaleds (void) visptr->viewx = obj->viewx; visptr->viewheight = obj->viewheight; - if (*visptr->shapenum == -1) + if (visptr->shapenum == NULL) { - void *temp1 = &obj->temp1; - visptr->shapenum = (short *)temp1; // special shape + visptr->shapenum = ShapePtr(obj->temp1); // special shape } if (obj->state->rotate)