- scriptified WH cutscenes and created a texture name definition table.

This commit is contained in:
Christoph Oelckers 2021-05-03 18:58:02 +02:00
parent 6f19c415d6
commit 8c6cecd738
13 changed files with 1046 additions and 814 deletions

View file

@ -1566,6 +1566,8 @@ DEFINE_FIELD_X(SummaryInfo, SummaryInfo, maxkills)
DEFINE_FIELD_X(SummaryInfo, SummaryInfo, secrets)
DEFINE_FIELD_X(SummaryInfo, SummaryInfo, maxsecrets)
DEFINE_FIELD_X(SummaryInfo, SummaryInfo, supersecrets)
DEFINE_FIELD_X(SummaryInfo, SummaryInfo, score)
DEFINE_FIELD_X(SummaryInfo, SummaryInfo, bonus)
DEFINE_FIELD_X(SummaryInfo, SummaryInfo, playercount)
DEFINE_FIELD_X(SummaryInfo, SummaryInfo, time)
DEFINE_FIELD_X(SummaryInfo, SummaryInfo, cheated)

View file

@ -213,6 +213,8 @@ struct SummaryInfo
int supersecrets;
int time;
int playercount;
int score;
int bonus;
bool cheated;
bool endofgame;
};

View file

@ -9,163 +9,6 @@
BEGIN_WH_NS
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
void IntroMovie(const CompletionFunc& completion)
{
Mus_Stop();
FX_StopAllSounds();
if (userConfig.nologo)
{
completion(false);
return;
}
else
{
JobDesc job = { PlayVideo(g_gameType & GAMEFLAG_WH2? "smk/intro.smk" : "intro.smk"), nullptr };
RunScreenJob(&job, 1, completion, true, true);
}
}
static const char* ratings[] = { "poor", "average", "good", "perfect" };
/*
inited = false;
if (init("stairs.smk"))
inited = true;
*/
class DStatisticsScreen : public DSkippableScreenJob
{
boolean inited = false;
int bonus, rating;
public:
DStatisticsScreen(PLAYER& plr)
{
if (kills > killcnt)
kills = killcnt;
int killp = (kills * 100) / (killcnt + 1);
if (treasuresfound > treasurescnt)
treasuresfound = treasurescnt;
int treap = (treasuresfound * 100) / (treasurescnt + 1);
rating = (killp + treap) / 2;
if (rating >= 95) {
rating = 3;
}
else if (rating >= 70)
rating = 2;
else if (rating >= 40)
rating = 1;
else rating = 0;
bonus = rating * 500;
plr.score += bonus;
}
void drawText(int x, int y, const char* text)
{
DrawText(twod, SmallFont, CR_UNTRANSLATED, x, y, text, DTA_FullscreenScale, FSMode_Fit320x200, TAG_DONE);
}
void Start() override
{
SND_Sound(S_CHAINDOOR1);
}
void OnTick() override
{
DrawTexture(twod, tileGetTexture(VMAINBLANK), 0, 0, DTA_Fullscreen, FSMode_ScaleToFit43, TAG_DONE);
drawText(10, 13, currentLevel->DisplayName());
drawText(10, 31, GStrings("Level conquered"));
drawText(10, 64, GStrings("Enemies killed"));
drawText(160 + 48 + 14, 64, FStringf("%d %s %d", kills, GStrings("TXT_OF"), killcnt));
drawText(10, 64 + 18, GStrings("Treasures found"));
drawText(160 + 48 + 14, 64 + 18, FStringf("%d %s %d", treasuresfound, GStrings("TXT_OF"), treasurescnt));
drawText(10, 64 + 2 * 18, GStrings("Experience gained"));
drawText(160 + 48 + 14, 64 + 2 * 18, FStringf("%s", (expgained + bonus)));
drawText(10, 64 + 3 * 18, GStrings("Rating"));
drawText(160 + 48 + 14, 64 + 3 * 18, FStringf("%d", GStrings(ratings[rating])));
drawText(10, 64 + 4 * 18, GStrings("TXT_Bonus"));
drawText(160 + 48 + 14, 64 + 4 * 18, FStringf("%d", bonus));
}
};
void showStatisticsScreen(CompletionFunc completion)
{
JobDesc job = { Create<DStatisticsScreen>(player[pyrn]), nullptr };
RunScreenJob(&job, 1, completion, true, false);
}
void startWh2Ending(CompletionFunc completion)
{
JobDesc jobs[3];
jobs[0] = { PlayVideo("smk/ending1.smk", nullptr) };
jobs[1] = { PlayVideo("smk/ending2.smk", nullptr) };
jobs[2] = { PlayVideo("smk/ending3.smk", nullptr) };
RunScreenJob(jobs, 3, completion, true, false);
}
void showVictoryScreen(CompletionFunc completion)
{
JobDesc jobs[3];
jobs[0] = { Create<DImageScreen>(VICTORYA, DScreenJob::fadein | DScreenJob::fadeout, 0x7fffffff), []() { SND_Sound(S_DROPFLAG); } };
jobs[1] = { Create<DImageScreen>(VICTORYB, DScreenJob::fadein | DScreenJob::fadeout, 0x7fffffff), []() { SND_Sound(S_WISP2); } };
jobs[2] = { Create<DImageScreen>(VICTORYC, DScreenJob::fadein | DScreenJob::fadeout, 0x7fffffff) };
RunScreenJob(jobs, 3, completion, true, false);
}
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
class DWHLoadScreen : public DScreenJob
{
MapRecord* rec;
public:
DWHLoadScreen(MapRecord* maprec) : DScreenJob(0), rec(maprec) {}
void drawText(int x, int y, const char* text)
{
DrawText(twod, SmallFont, CR_UNTRANSLATED, x - SmallFont->StringWidth(text)/2, y, text, DTA_FullscreenScale, FSMode_Fit320x200, TAG_DONE);
}
int Frame(uint64_t clock, bool skiprequest)
{
twod->ClearScreen();
DrawTexture(twod, tileGetTexture(MAINMENU), 0, 0, DTA_FullscreenEx, FSMode_ScaleToFit43, DTA_LegacyRenderStyle, STYLE_Normal, TAG_DONE);
drawText(160, 100, GStrings("TXT_LOADING"));
drawText(160, 114, GStrings("TXTB_PLSWAIT"));
return 0;
}
};
void loadscreen(MapRecord* rec, CompletionFunc func)
{
JobDesc job = { Create<DWHLoadScreen>(rec) };
RunScreenJob(&job, 1, func);
}
#if 0

View file

@ -653,10 +653,12 @@ void GameInterface::Startup()
}
else
{
/*
IntroMovie([](bool)
{
gameaction = ga_mainmenu;
});
*/
}
}
@ -747,6 +749,7 @@ void GameInterface::Ticker()
void GameInterface::LevelCompleted(MapRecord* map, int skill)
{
#if 0
if (map)
{
STAT_Update(false);
@ -757,7 +760,28 @@ void GameInterface::LevelCompleted(MapRecord* map, int skill)
playertorch = 0;
spritesound(S_WARP, &sprite[pplr->spritenum]);
};
if (isWh2()) {
if (isWh2())
{
#if 0
if (kills > killcnt)
kills = killcnt;
int killp = (kills * 100) / (killcnt + 1);
if (treasuresfound > treasurescnt)
treasuresfound = treasurescnt;
int treap = (treasuresfound * 100) / (treasurescnt + 1);
rating = (killp + treap) / 2;
if (rating >= 95) {
rating = 3;
}
else if (rating >= 70)
rating = 2;
else if (rating >= 40)
rating = 1;
else rating = 0;
bonus = rating * 500;
plr.score += bonus;
score = bonus + expgained;
#endif
showStatisticsScreen(completion);
return;
}
@ -778,6 +802,7 @@ void GameInterface::LevelCompleted(MapRecord* map, int skill)
gameaction = ga_mainmenu;
});
}
#endif
}
void GameInterface::NextLevel(MapRecord* map, int skill)

View file

@ -1,5 +1,6 @@
#include "ns.h"
#include "gamecontrol.h"
#include "texturemanager.h"
BEGIN_WH_NS
@ -167,8 +168,30 @@ short GRONMUDIE;
short GRONSHIELD;
short SHIELD;
#define x(a, b) registerName(#a, b);
#define y(a, b) registerName(#a, b);
static void SetTileNames()
{
auto registerName = [](const char* name, int index)
{
TexMan.AddAlias(name, tileGetTexture(index));
};
if (!isWh2())
{
#include "wh1names.h"
}
else
{
#include "wh2names.h"
}
}
#undef x
#undef y
void InitNames()
{
SetTileNames();
if(!isWh2()) {
KNIFEREADY = 1249;
KNIFEATTACK = 1261;

View file

@ -1,5 +1,6 @@
#include "ns.h"
#include "gamecontrol.h"
#include "types.h"
BEGIN_WH_NS
int S_THUNDER1 = 0;
@ -299,5 +300,177 @@ void InitSoundNames()
S_GRONDEATHC = 138;
S_GRONPAINA = 142;
}
// Due to the value differences the script constants cannot be statically defined.
auto cls = PClass::FindClass("WhSnd");
if (cls)
{
auto clst = cls->VMType;
#define ADDSYM(x) clst->Symbols.AddSymbol(Create<PSymbolConstNumeric>(#x, TypeSInt32, x))
ADDSYM(S_THUNDER1); //0;
ADDSYM(S_THUNDER2); //1;
ADDSYM(S_THUNDER3); //2;
ADDSYM(S_THUNDER4); //3;
ADDSYM(S_WINDLOOP1); //4;
ADDSYM(S_WAVELOOP1); //5;
ADDSYM(S_LAVALOOP1); //6;
ADDSYM(S_FIRELOOP1); //7;
ADDSYM(S_STONELOOP1); //8;
ADDSYM(S_BATSLOOP); //9;
ADDSYM(S_PLRWEAPON0); //10;
ADDSYM(S_PLRWEAPON1); //11;
ADDSYM(S_PLRWEAPON2); //12;
ADDSYM(S_PLRWEAPON3); //13;
ADDSYM(S_PLRWEAPON4); //14;
ADDSYM(S_GOBLIN1); //15;
ADDSYM(S_GOBLIN2); //16;
ADDSYM(S_GOBLIN3); //17;
ADDSYM(S_GOBPAIN1); //18;
ADDSYM(S_GOBPAIN2); //19;
ADDSYM(S_GOBDIE1); //20;
ADDSYM(S_GOBDIE2); //21;
ADDSYM(S_GOBDIE3); //22;
ADDSYM(S_KSNARL1); //23;
ADDSYM(S_KSNARL2); //24;
ADDSYM(S_KSNARL3); //25;
ADDSYM(S_KSNARL4); //26;
ADDSYM(S_KPAIN1); //27;
ADDSYM(S_KPAIN2); //28;
ADDSYM(S_KDIE1); //29;
ADDSYM(S_KDIE2); //30;
ADDSYM(S_DEMON1); //31;
ADDSYM(S_DEMON2); //32;
ADDSYM(S_DEMON3); //33;
ADDSYM(S_DEMON4); //34;
ADDSYM(S_DEMON5); //35;
ADDSYM(S_DEMONDIE1); //36;
ADDSYM(S_DEMONDIE2); //37;
ADDSYM(S_MSNARL1); //38;
ADDSYM(S_MSNARL2); //39;
ADDSYM(S_MSNARL3); //40;
ADDSYM(S_MSNARL4); //41;
ADDSYM(S_MPAIN1); //42;
ADDSYM(S_MDEATH1); //43;
ADDSYM(S_DRAGON1); //44;
ADDSYM(S_DRAGON2); //45;
ADDSYM(S_DRAGON3); //46;
ADDSYM(S_RIP1); //47;
ADDSYM(S_RIP2); //48;
ADDSYM(S_RIP3); //49;
ADDSYM(S_SKELHIT1); //50;
ADDSYM(S_SKELHIT2); //51;
ADDSYM(S_SKELETONDIE); //52;
ADDSYM(S_GUARDIAN1); //53;
ADDSYM(S_GUARDIAN2); //54;
ADDSYM(S_GUARDIANPAIN1); //55;
ADDSYM(S_GUARDIANPAIN2); //56;
ADDSYM(S_GUARDIANDIE); //57;
ADDSYM(S_WISP); //58;
ADDSYM(S_WISP2); //59;
ADDSYM(S_SPLASH1); //60;
ADDSYM(S_SPLASH2); //61;
ADDSYM(S_SPLASH3); //62;
ADDSYM(S_SPLASH4); //63;
ADDSYM(S_SPLASH5); //64;
ADDSYM(S_SPLASH6); //65;
ADDSYM(S_WILLOWDIE); //66;
ADDSYM(S_FATWITCHDIE); //67;
ADDSYM(S_JUDY1); //68;
ADDSYM(S_JUDY2); //69;
ADDSYM(S_JUDY3); //70;
ADDSYM(S_JUDY4); //71;
ADDSYM(S_JUDYDIE); //72;
ADDSYM(S_SKULLWITCH1); //73;
ADDSYM(S_SKULLWITCH2); //74;
ADDSYM(S_SKULLWITCH3); //75;
ADDSYM(S_SKULLWITCHDIE); //76;
ADDSYM(S_GRONDEATHA); //77;
ADDSYM(S_GRONDEATHB); //78;
ADDSYM(S_GRONDEATHC); //79;
ADDSYM(S_CHAIN1); //80;
ADDSYM(S_FLAME1); //81;
ADDSYM(S_GRONPAINA); //82;
ADDSYM(S_GRONPAINB); //83;
ADDSYM(S_GRONPAINC); //84;
ADDSYM(S_CLUNK); //85;
ADDSYM(S_DEMONTHROW); //86;
ADDSYM(S_WITCHTHROW); //87;
ADDSYM(S_DOOR1); //88;
ADDSYM(S_DOOR2); //89;
ADDSYM(S_DOOR3); //90;
ADDSYM(S_CREAKDOOR1); //91;
ADDSYM(S_CREAKDOOR2); //92;
ADDSYM(S_CREAKDOOR3); //93;
ADDSYM(S_STING1); //94;
ADDSYM(S_STING2); //95;
ADDSYM(S_POTION1); //96;
ADDSYM(S_GENTHROW); //97;
ADDSYM(S_GENSWING); //98;
ADDSYM(S_ARROWHIT); //99;
ADDSYM(S_WALLHIT1); //100;
ADDSYM(S_GONG); //101;
ADDSYM(S_SPELL1); //102;
ADDSYM(S_FREEZE); //103;
ADDSYM(S_FREEZEDIE); //104;
ADDSYM(S_TRAP1); //105;
ADDSYM(S_TRAP2); //106;
ADDSYM(S_RATS1); //107;
ADDSYM(S_RATS2); //108;
ADDSYM(S_WINDLOOP2); //109;
ADDSYM(S_BREATH1); //110;
ADDSYM(S_BREATH2); //111;
ADDSYM(S_PUSH1); //112;
ADDSYM(S_PUSH2); //113;
ADDSYM(S_PLRPAIN1); //114;
ADDSYM(S_PLRPAIN2); //115;
ADDSYM(S_GORE1); //116;
ADDSYM(S_GORE2); //117;
ADDSYM(S_GORE1A); //118;
ADDSYM(S_GORE1B); //119;
ADDSYM(S_DEADSTEP); //120;
ADDSYM(S_HEARTBEAT); //121;
ADDSYM(S_SOFTCHAINWALK); //122;
ADDSYM(S_SOFTCREAKWALK); //123;
ADDSYM(S_LOUDCHAINWALK); //124;
ADDSYM(S_GRATEWALK); //125;
ADDSYM(S_SCARYDUDE); //126;
ADDSYM(S_WATERY); //127;
ADDSYM(S_GLASSBREAK1); //128;
ADDSYM(S_GLASSBREAK2); //129;
ADDSYM(S_GLASSBREAK3); //130;
ADDSYM(S_TREASURE1); //131;
ADDSYM(S_SWORD1); //132;
ADDSYM(S_SWORD2); //133;
ADDSYM(S_SWORDCLINK1); //134;
ADDSYM(S_SWORDCLINK2); //135;
ADDSYM(S_SWORDCLINK3); //136;
ADDSYM(S_SWORDCLINK4); //137;
ADDSYM(S_SOCK1); //138;
ADDSYM(S_SOCK2); //139;
ADDSYM(S_SOCK3); //140;
ADDSYM(S_SOCK4); //141;
ADDSYM(S_KOBOLDHIT); //142;
ADDSYM(S_SPIDERBITE); //143;
ADDSYM(S_FIREBALL); //144;
ADDSYM(S_WOOD1); //145;
ADDSYM(S_CHAINDOOR1); //146;
ADDSYM(S_PULLCHAIN1); //147;
ADDSYM(S_PICKUPAXE); //148;
ADDSYM(S_EXPLODE); //149;
ADDSYM(S_SKELSEE); //150;
ADDSYM(S_BARRELBREAK); //151;
ADDSYM(S_WARP); //152;
ADDSYM(S_PICKUPFLAG); //155;
ADDSYM(S_DROPFLAG); //156;
ADDSYM(S_LAUGH); //157;
ADDSYM(S_DRINK); //158;
ADDSYM(S_PAGE); //159;
ADDSYM(S_BOTTLES); //160;
ADDSYM(S_CRACKING); //161;
ADDSYM(S_PLRDIE1); //162;
ADDSYM(S_FATLAUGH); //163;
}
}
END_WH_NS

View file

@ -12,10 +12,20 @@ using byte = uint8_t;
END_WH_NS
enum
{
#define x(a, b) a= b,
#define y(a, b) WH1##a = b,
#include "wh1names.h"
#undef y
#define y(a, b) WH2##a = b,
#include "wh2names.h"
#undef y
#undef x
};
#include "globals.h"
#include "names.h"
#include "wh1names.h"
#include "wh2names.h"
#include "sndnames.h"
#include "player.h"
#include "ai.h"
@ -484,15 +494,10 @@ void analyzesprites(PLAYER& plr, int dasmoothratio, spritetype* tsprite, int& sp
void precacheTiles();
void startWh2Ending(CompletionFunc);
void showStatisticsScreen(CompletionFunc);
void showVictoryScreen(CompletionFunc);
void InitNames();
void InitFonts();
void sfxInit(void);
void IntroMovie(const CompletionFunc& completion);
bool playrunning();

View file

@ -1,266 +1,258 @@
#pragma once
BEGIN_WH_NS
enum WH1Names {
SKY8 = 179,
SKY9 = 180,
SKY10 = 181,
FIREBALL = 314,
LFIRE = 345,
SFIRE = 353,
WATERSPLASH = 438,
LASTWATERSPLASH = 446,
GLOW = 451,
COMPASS = 499,
MACEWITHSPIKES = 540,
MACE = 541,
KNIFE = 542,
SWORD1 = 543,
SWORD2 = 544,
GYSER = 680,
FATWITCH = 821,
FATWITCHATTACK = 841,
FATWITCHDIE = 846,
FATWITCHDEAD = 852,
SWAPCHILL = 853,
SWAMPSTAND = 859,
SWAMPTHING = 860,
SWAMPATTACK = 862,
FREDSTAND = 866,
FRED = 871,
FREDATTACK = 891,
FREDPAIN = 906,
FREDDIE = 911,
FREDDEAD = 916,
GOBLINSTAND = 917,
GOBLIN = 922,
GOBLINCHILL = 942,
GOBLINSURPRISE = 946,
GOBLINATTACK = 952,
GOBLINPAIN = 963,
GOBLINDIE = 968,
GOBLINDEAD = 977,
SKULLY = 1028,
SKULLYATTACK = 1048,
SKULLYDIE = 1059,
SKULLYDEAD = 1069,
SPIDER = 1070,
SPIDERDIE = 1110,
SPIDERDEAD = 1117,
JUDYSIT = 1118,
JUDYSTAND = 1119,
JUDY = 1123,
JUDYATTACK1 = 1143,
JUDYATTACK2 = 1150,
JUDYDIE = 1159,
JUDYDEAD = 1163,
DRAGONATTACK = 1164,
DRAGONDIE = 1187,
DRAGONDEAD = 1200,
DRAGON = 1201,
DRAGONATTACK2 = 1207,
DOG = 1213,
TILES005_START = 1221,
SVGAMENU2 = 1990,
SVGAMENU = 1991,
GASCLOUD = 2021,
POISONICON = 2373,
SKULLYCHAR = 2433,
DEVILCHAR = 2438,
DRAGONCHAR = 2443,
FATWITCHCHAR = 2448,
GOBLINCHAR = 2453,
JUDYCHAR = 2458,
KOBOLDCHAR = 2463,
MINOTAURCHAR = 2468,
SKELETONCHAR = 2473,
GRONCHAR = 2483,
GUARDIANCHAR = 2498,
BETAPAGE = 2691,
STONEHENGE = 2698,
SVGAVICTORYA1 = 2699,
SVGAVICTORYA2 = 2700,
VICTORYA = 2703,
VICTORYB = 2704,
SVGAVICTORYB1 = 2705,
SVGAVICTORYB2 = 2706,
SVB1 = 2707,
SVB2 = 2708,
SVBR1 = 2709,
SVBR2 = 2710,
VICTORYC = 2714,
SVP1 = 2715,
SVP2 = 2716,
SVR1 = 2717,
SVR2 = 2718,
x(SKY8, 179)
x(SKY9, 180)
x(SKY10, 181)
x(FIREBALL, 314)
x(LFIRE, 345)
x(SFIRE, 353)
x(WATERSPLASH, 438)
x(LASTWATERSPLASH, 446)
x(GLOW, 451)
x(COMPASS, 499)
x(MACEWITHSPIKES, 540)
x(MACE, 541)
x(KNIFE, 542)
x(SWORD1, 543)
x(SWORD2, 544)
x(GYSER, 680)
x(FATWITCH, 821)
x(FATWITCHATTACK, 841)
x(FATWITCHDIE, 846)
x(FATWITCHDEAD, 852)
x(SWAPCHILL, 853)
x(SWAMPSTAND, 859)
x(SWAMPTHING, 860)
x(SWAMPATTACK, 862)
x(FREDSTAND, 866)
x(FRED, 871)
x(FREDATTACK, 891)
x(FREDPAIN, 906)
x(FREDDIE, 911)
x(FREDDEAD, 916)
x(GOBLINSTAND, 917)
x(GOBLIN, 922)
x(GOBLINCHILL, 942)
x(GOBLINSURPRISE, 946)
x(GOBLINATTACK, 952)
x(GOBLINPAIN, 963)
x(GOBLINDIE, 968)
x(GOBLINDEAD, 977)
x(SKULLY, 1028)
x(SKULLYATTACK, 1048)
x(SKULLYDIE, 1059)
x(SKULLYDEAD, 1069)
x(SPIDER, 1070)
x(SPIDERDIE, 1110)
x(SPIDERDEAD, 1117)
x(JUDYSIT, 1118)
x(JUDYSTAND, 1119)
x(JUDY, 1123)
x(JUDYATTACK1, 1143)
x(JUDYATTACK2, 1150)
x(JUDYDIE, 1159)
x(JUDYDEAD, 1163)
x(DRAGONATTACK, 1164)
x(DRAGONDIE, 1187)
x(DRAGONDEAD, 1200)
x(DRAGON, 1201)
x(DRAGONATTACK2, 1207)
x(DOG, 1213)
x(TILES005_START, 1221)
x(SVGAMENU2, 1990)
x(SVGAMENU, 1991)
x(GASCLOUD, 2021)
x(POISONICON, 2373)
x(SKULLYCHAR, 2433)
x(DEVILCHAR, 2438)
x(DRAGONCHAR, 2443)
x(FATWITCHCHAR, 2448)
x(GOBLINCHAR, 2453)
x(JUDYCHAR, 2458)
x(KOBOLDCHAR, 2463)
x(MINOTAURCHAR, 2468)
x(SKELETONCHAR, 2473)
x(GRONCHAR, 2483)
x(GUARDIANCHAR, 2498)
x(BETAPAGE, 2691)
x(STONEHENGE, 2698)
x(SVGAVICTORYA1, 2699)
x(SVGAVICTORYA2, 2700)
x(VICTORYA, 2703)
x(VICTORYB, 2704)
x(SVGAVICTORYB1, 2705)
x(SVGAVICTORYB2, 2706)
x(SVB1, 2707)
x(SVB2, 2708)
x(SVBR1, 2709)
x(SVBR2, 2710)
x(VICTORYC, 2714)
x(SVP1, 2715)
x(SVP2, 2716)
x(SVR1, 2717)
x(SVR2, 2718)
WH1KNIFEREADY = 1249,
WH1KNIFEATTACK = 1261,
WH1RFIST = 1268,
WH1SWORDATTACK = 1291,
WH1MORNINGSTAR = 1306,
WH1BOWREADY = 1313,
WH1BOWREADYEND = 1319,
WH1BOWWALK = 1323,
WH1KNIFEATTACK2 = 1329,
WH1SWORDPULL = 1333,
WH1SWORDATTACK2 = 1340,
WH1MORNINGATTACK2 = 1348,
WH1MUMEDUSA = 1353,
WH1MUTWOHANDS = 1363,
WH1BMUTWOHANDS = 1378,
WH1GOBSWORDPULL = 1390,
WH1GOBSWORDATTACK = 1397,
WH1GOBSWORDATTACK2 = 1404,
WH1BIGAXEATTACK = 1411,
WH1BIGAXEATTACK2 = 1421,
WH1BIGAXEDRAW = 1429,
WH1HALBERDATTACK1 = 1438,
WH1HALBERDATTACK2 = 1443,
WH1HALBERDDRAW = 1447,
WH1PIKEDRAW = 1451,
WH1PIKEATTACK1 = 1457,
WH1EXCALATTACK1 = 1463,
WH1EXCALATTACK2 = 1473,
WH1EXCALDRAW = 1481,
WH1BIGAXEDRAW9 = 1494,
WH1BIGAXEDRAW10 = 1495,
WH1GEARS2START = 1498,
WH1HORNEDSKULL = 1503,
WH1THEFONT = 1511,
WH1CRYSTALSTAFF = 1551,
WH1TORCH = 1554,
WH1WEAPON1 = 1567,
WH1WEAPON1A = 1571,
WH1AMULETOFTHEMIST = 1575,
WH1WEAPON2 = 1583,
WH1BRASSKEY = 1624,
WH1BLACKKEY = 1632,
WH1GLASSKEY = 1640,
WH1IVORYKEY = 1648,
WH1NEWCHUNK = 1664,
WH1BOWLOFFIRE = 1705,
WH1SPAWNFIREBALL = 1718,
WH1PENTAGRAM = 1760,
WH1THEHORN = 1768,
WH1BOW = 1776,
WH1SWINGGATE3 = 1789,
WH1PLATEARMOR = 1794,
WH1HELMET = 1802,
WH1CHAINMAIL = 1810,
WH1SCROLLSCARE = 1818,
WH1SCROLLNUKE = 1826,
WH1SCROLLFLY = 1834,
WH1SCROLLFIREBALL = 1842,
WH1SCROLLFREEZE = 1850,
WH1SCROLLNIGHT = 1858,
WH1SCROLLMAGIC = 1866,
WH1SCROLLOPEN = 1874,
WH1LEATHERARMOR = 1882,
WH1QUIVER = 1890,
WH1SWINGGATE4 = 1898,
WH1SWINGGATE5 = 1899,
WH1SMOKEFX = 1904,
WH1STANDINTORCH = 1908,
WH1PENTADOOR3 = 1927,
WH1PENTADOOR4 = 1928,
WH1PENTADOOR5 = 1929,
WH1PENTADOOR6 = 1930,
WH1PENTADOOR7 = 1931,
WH1SCARY = 1933,
WH1FISH = 1945,
WH1LEVERUP = 1947,
WH1LEVERDOWN = 1949,
WH1SPAWNJAVLIN = 1958,
WH1RAT = 1962,
WH1GUARDIAN = 1994,
WH1GUARDIANATTACK = 2002,
WH1DART = 2010,
WH1WEAPON4 = 2027,
WH1WEAPON6 = 2039,
WH1WEAPON5 = 2047,
WH1WEAPON5B = 2055,
WH1THROWHALBERD = 2066,
WH1WEAPON7 = 2067,
WH1THROWPIKE = 2071,
WH1EXPLO2 = 2096,
WH1SHATTERVASE = 2124,
WH1SHATTERVASE2 = 2131,
WH1SHATTERVASE3 = 2138,
WH1HANGMAN = 2145,
WH1SKELETON = 2156,
WH1SKELETONATTACK = 2181,
WH1SKELETONSKULL = 2186,
WH1SKELETONUP = 2191,
WH1SKELETONDIE = 2192,
WH1SKELETONDEAD = 2198,
WH1BONECHUNK1 = 2199,
WH1BONECHUNKEND = 2208,
WH1PIKEATTACK2 = 2209,
WH1GOBWEAPON = 2218,
WH1SFLASKBLUE = 2240,
WH1SFLASKGREEN = 2241,
WH1SFLASKOCHRE = 2242,
WH1SFLASKRED = 2243,
WH1SFLASKTAN = 2244,
WH1SFLASKBLACK = 2245,
WH1SHEALTHFONT = 2246,
WH1SSCOREFONT = 2256,
WH1SPOTIONFONT = 2266,
WH1SPOTIONBACKPIC = 2280,
WH1SPOTIONARROW = 2281,
WH1SSPELLBOOKBLANK = 2286,
WH1SSPELLBOOK2 = 2294,
WH1SSPELLBOOK3 = 2302,
WH1SSPELLBOOK4 = 2310,
WH1SSPELLBOOK5 = 2317,
WH1SSPELLBOOK6 = 2324,
WH1SSPELLBOOK7 = 2332,
WH1SSPELLBOOK8 = 2340,
WH1SARROWS = 2348,
WH1SPLAYERLVL = 2349,
WH1SSTATUSBAR = 2358,
WH1SKEYBLANK = 2359,
WH1SKEYBRASS = 2360,
WH1SKEYBLACK = 2361,
WH1SKEYGLASS = 2362,
WH1SKEYIVORY = 2363,
WH1SHEALTHBACK = 2365,
WH1SSCOREBACKPIC = 2368,
WH1SNDEFFECT = 2369,
WH1SNDLOOP = 2370,
WH1SNDLOOPOFF = 2371,
WH1BROWNCHUNKSTART = 2387,
WH1GREYCHUNKSTART = 2395,
WH1REDCHUNKSTART = 2403,
WH1GREENCHUNKSTART = 2411,
WH1TANCHUNKSTART = 2419,
WH1WILLOW = 2427,
WH1SPIKES = 2488,
WH1STHEFLAG = 2491,
WH1GRONHALATTACK = 2504,
WH1GRONHALATTACKEND = 2508,
WH1GROLHALREADY = 2509,
WH1GRONHALREADYEND = 2510,
WH1GRONHAL = 2539,
WH1GRONHALPAIN = 2559,
WH1GRONHALDIE = 2560,
WH1GRONSWATTACK = 2561,
WH1GRONSW = 2581,
WH1GRONSWPAIN = 2601,
WH1GRONSWDIE = 2602,
WH1GRONMUATTACK = 2603,
WH1GRONDIE = 2633,
WH1GRONDEAD = 2639,
WH1GRONMU = 2640,
WH1GRONMUPAIN = 2660,
WH1GRONMUDIE = 2661,
WH1GRONSHIELD = 2680,
WH1SHIELD = 2684,
y(KNIFEREADY, 1249)
y(KNIFEATTACK, 1261)
y(RFIST, 1268)
y(SWORDATTACK, 1291)
y(MORNINGSTAR, 1306)
y(BOWREADY, 1313)
y(BOWREADYEND, 1319)
y(BOWWALK, 1323)
y(KNIFEATTACK2, 1329)
y(SWORDPULL, 1333)
y(SWORDATTACK2, 1340)
y(MORNINGATTACK2, 1348)
y(MUMEDUSA, 1353)
y(MUTWOHANDS, 1363)
y(BMUTWOHANDS, 1378)
y(GOBSWORDPULL, 1390)
y(GOBSWORDATTACK, 1397)
y(GOBSWORDATTACK2, 1404)
y(BIGAXEATTACK, 1411)
y(BIGAXEATTACK2, 1421)
y(BIGAXEDRAW, 1429)
y(HALBERDATTACK1, 1438)
y(HALBERDATTACK2, 1443)
y(HALBERDDRAW, 1447)
y(PIKEDRAW, 1451)
y(PIKEATTACK1, 1457)
y(EXCALATTACK1, 1463)
y(EXCALATTACK2, 1473)
y(EXCALDRAW, 1481)
y(BIGAXEDRAW9, 1494)
y(BIGAXEDRAW10, 1495)
y(GEARS2START, 1498)
y(HORNEDSKULL, 1503)
y(THEFONT, 1511)
y(CRYSTALSTAFF, 1551)
y(TORCH, 1554)
y(WEAPON1, 1567)
y(WEAPON1A, 1571)
y(AMULETOFTHEMIST, 1575)
y(WEAPON2, 1583)
y(BRASSKEY, 1624)
y(BLACKKEY, 1632)
y(GLASSKEY, 1640)
y(IVORYKEY, 1648)
y(NEWCHUNK, 1664)
y(BOWLOFFIRE, 1705)
y(SPAWNFIREBALL, 1718)
y(PENTAGRAM, 1760)
y(THEHORN, 1768)
y(BOW, 1776)
y(SWINGGATE3, 1789)
y(PLATEARMOR, 1794)
y(HELMET, 1802)
y(CHAINMAIL, 1810)
y(SCROLLSCARE, 1818)
y(SCROLLNUKE, 1826)
y(SCROLLFLY, 1834)
y(SCROLLFIREBALL, 1842)
y(SCROLLFREEZE, 1850)
y(SCROLLNIGHT, 1858)
y(SCROLLMAGIC, 1866)
y(SCROLLOPEN, 1874)
y(LEATHERARMOR, 1882)
y(QUIVER, 1890)
y(SWINGGATE4, 1898)
y(SWINGGATE5, 1899)
y(SMOKEFX, 1904)
y(STANDINTORCH, 1908)
y(PENTADOOR3, 1927)
y(PENTADOOR4, 1928)
y(PENTADOOR5, 1929)
y(PENTADOOR6, 1930)
y(PENTADOOR7, 1931)
y(SCARY, 1933)
y(FISH, 1945)
y(LEVERUP, 1947)
y(LEVERDOWN, 1949)
y(SPAWNJAVLIN, 1958)
y(RAT, 1962)
y(GUARDIAN, 1994)
y(GUARDIANATTACK, 2002)
y(DART, 2010)
y(WEAPON4, 2027)
y(WEAPON6, 2039)
y(WEAPON5, 2047)
y(WEAPON5B, 2055)
y(THROWHALBERD, 2066)
y(WEAPON7, 2067)
y(THROWPIKE, 2071)
y(EXPLO2, 2096)
y(SHATTERVASE, 2124)
y(SHATTERVASE2, 2131)
y(SHATTERVASE3, 2138)
y(HANGMAN, 2145)
y(SKELETON, 2156)
y(SKELETONATTACK, 2181)
y(SKELETONSKULL, 2186)
y(SKELETONUP, 2191)
y(SKELETONDIE, 2192)
y(SKELETONDEAD, 2198)
y(BONECHUNK1, 2199)
y(BONECHUNKEND, 2208)
y(PIKEATTACK2, 2209)
y(GOBWEAPON, 2218)
y(SFLASKBLUE, 2240)
y(SFLASKGREEN, 2241)
y(SFLASKOCHRE, 2242)
y(SFLASKRED, 2243)
y(SFLASKTAN, 2244)
y(SFLASKBLACK, 2245)
y(SHEALTHFONT, 2246)
y(SSCOREFONT, 2256)
y(SPOTIONFONT, 2266)
y(SPOTIONBACKPIC, 2280)
y(SPOTIONARROW, 2281)
y(SSPELLBOOKBLANK, 2286)
y(SSPELLBOOK2, 2294)
y(SSPELLBOOK3, 2302)
y(SSPELLBOOK4, 2310)
y(SSPELLBOOK5, 2317)
y(SSPELLBOOK6, 2324)
y(SSPELLBOOK7, 2332)
y(SSPELLBOOK8, 2340)
y(SARROWS, 2348)
y(SPLAYERLVL, 2349)
y(SSTATUSBAR, 2358)
y(SKEYBLANK, 2359)
y(SKEYBRASS, 2360)
y(SKEYBLACK, 2361)
y(SKEYGLASS, 2362)
y(SKEYIVORY, 2363)
y(SHEALTHBACK, 2365)
y(SSCOREBACKPIC, 2368)
y(SNDEFFECT, 2369)
y(SNDLOOP, 2370)
y(SNDLOOPOFF, 2371)
y(BROWNCHUNKSTART, 2387)
y(GREYCHUNKSTART, 2395)
y(REDCHUNKSTART, 2403)
y(GREENCHUNKSTART, 2411)
y(TANCHUNKSTART, 2419)
y(WILLOW, 2427)
y(SPIKES, 2488)
y(STHEFLAG, 2491)
y(GRONHALATTACK, 2504)
y(GRONHALATTACKEND, 2508)
y(GROLHALREADY, 2509)
y(GRONHALREADYEND, 2510)
y(GRONHAL, 2539)
y(GRONHALPAIN, 2559)
y(GRONHALDIE, 2560)
y(GRONSWATTACK, 2561)
y(GRONSW, 2581)
y(GRONSWPAIN, 2601)
y(GRONSWDIE, 2602)
y(GRONMUATTACK, 2603)
y(GRONDIE, 2633)
y(GRONDEAD, 2639)
y(GRONMU, 2640)
y(GRONMUPAIN, 2660)
y(GRONMUDIE, 2661)
y(GRONSHIELD, 2680)
y(SHIELD, 2684)
};
END_WH_NS

View file

@ -1,389 +1,380 @@
#pragma once
BEGIN_WH_NS
enum WH2Names {
STAINQ = 180,
FLOORMIRROR = 182,
STARMAP = 208,
BLOODSPLAT1 = 212,
BLOODSPLAT1END = 222,
BLOODSPLAT2 = 223,
BLOODSPLAT2END = 228,
WEAPON8 = 229,
SILVERBAG = 234,
GOLDBAG = 235,
GOLDBAG2 = 236,
GOLDCOINS = 237,
GOLDCOINS2 = 238,
SILVERCOINS = 239,
WALLPIKE = 356,
WALLSWORD = 357,
WALLBOW = 358,
WALLAXE = 359,
STAINTRIANGLE = 410,
STAINFLOWER = 411,
STAINTHIN = 412,
PATROLPOINT = 447,
CONE = 449,
STAINCIRCLE = 451,
STAINCIRCLEBREAK = 452,
STAINCIRCLEEND = 457,
STAINHEAD = 498,
STAINSNAKE = 499,
SKULLPULLCHAIN1 = 539,
GONZOSHIELD = 540,
SKULLPULLCHAIN3 = 541,
SPARKBALL = 602,
WEAPON3A = 670,
SLIMESPLASH = 821,
LASTSLIMESPLASH = 827,
DAFONT = 864,
ZFIRE = 905,
IMP = 922,
IMPATTACK = 952,
IMPDIE = 958,
IMPPAIN = 959,
IMPDEAD = 967,
THEMAINMENU = 1028,
THEMAINMENUWITH = 1029,
THENEWGAME = 1030,
THELOADSAVE = 1031,
THEOPTIONS = 1032,
THEHELP = 1033,
THEQUIT = 1034,
ZCREDITS = 1035,
ZWEAPON = 1036,
ZSPELL = 1037,
ZKEN = 1038,
ZCREDITS2 = 1039,
ZMOVE = 1040,
ZMOVE2 = 1041,
ZPOTION = 1042,
ZCREDITS3 = 1043,
ZARTIST = 1044,
ZSAVE = 1045,
ZLOAD = 1046,
ZGOREPG = 1047,
VMAINBLANK = 1048,
VMAIN = 1049,
VNEW = 1050,
VCREDIT1 = 1055,
DALOAD = 1065,
DASAVE = 1066,
ZLOADSAVE = 1067,
ZSURE = 1068,
THEORDER = 1069,
STHEORDER = 1070,
ZOPS = 1072,
DASOUND = 1073,
DAGAMEPLAY = 1074,
DACONTROLS = 1075,
DASLIDER = 1076,
ZCDPLAYER = 1077,
STAINGLASS1 = 1079,
STAINGLASS2 = 1086,
STAINGLASS3 = 1093,
STAINGLASS4 = 1100,
STAINGLASS5 = 1107,
STAINGLASS6 = 1114,
STAINGLASS7 = 1121,
STAINGLASS8 = 1128,
STAINGLASS9 = 1135,
CDMUVOL = 1142,
REDSHUFFLE = 1164,
ZZGORE = 1182,
ZZBLOOD = 1183,
ZZDIFFICULTY = 1184,
ZCONTROLS = 1185,
ZZSLIDER = 1198,
ZZON = 1199,
ZZOFF = 1200,
ZZONLITE = 1201,
ZZOFFLITE = 1202,
EXPLOSTART = 1203,
EXPLOEND = 1215,
ARROWFLAME = 1216,
STAINSCENE = 1658,
STAINSKULL = 1660,
STAINGARGO = 1661,
STAINMU = 1662,
SHARD = 1687,
DEMON = 1935,
GONZOBSHIELD = 2432,
GONZOCSHIELD = 2439,
GONZOGSHIELD = 2446,
STONEGONZOCHM = 2483,
STONEGONZOGSH = 2484,
STONEGRONDOVAL = 2485,
STONEGONZOBSW = 2486,
STONEGONZOBSH = 2497,
STONEGONZOBSW2 = 2498,
SBLUEKNIGHTS1 = 2705,
SBLUEKNIGHTS2 = 2706,
SBROWNKNIGHTS1 = 2707,
SBROWNKNIGHTS2 = 2708,
SPURPLEKNIGHTS1 = 2713,
SPURPLEKNIGHTS2 = 2714,
SREDKNIGHTS1 = 2715,
SREDKNIGHTS2 = 2716,
NEWGUYBOW = 2750,
NEWGUYPUNCH = 2780,
GONZOBSHPAIN = 3006,
GONZOBSHDEAD = 3016,
GONZOCSW = 3017,
GONZOCSWAT = 3047,
GONZOCSWPAIN = 3077,
GONZOCSWDEAD = 3089,
KURTSTAND = 3090,
KURTKNEE = 3095,
KURTJUMP = 3100,
KURTAT = 3110,
GONZOCHMAT = 3120,
KURTPUNCH = 3140,
KURTREADY = 3160,
NEWGUY = 3170,
NEWGUYMACE = 3200,
NEWGUYDIE = 3230,
NEWGUYDEAD = 3239,
NEWGUYSTAND = 3243,
NEWGUYKNEE = 3248,
GONZOCSHPAIN = 3268,
GONZOCSHDEAD = 3278,
GONZOGSW = 3279,
GONZOGSWAT = 3309,
GONZOGSWPAIN = 3339,
GONZOGSWDEAD = 3351,
GONZOGHM = 3352,
GONZOGHMAT = 3382,
GONZOGHMPAIN = 3412,
GONZOGHMDEAD = 3425,
GONZOGSH = 3426,
GONZOGSHAT = 3474,
GONZOGSHPAIN = 3530,
GONZOGSHDEAD = 3540,
KATIE = 3541,
KATIEASS = 3561,
KATIEAT = 3566,
KATIEPAIN = 3583,
KATIEDEAD = 3591,
NEWGUYMACEMU = 3592,
NEWGUYCAST = 3602,
NEWGUYPAIN = 3612,
GONZOHMJUMP = 3630,
GONZOHMJUMPEND = 3635,
GONZOSHJUMP = 3636,
GONZOSHJUMPEND = 3641,
ZFLASHER1 = 3650,
ZFLASHER2 = 3662,
SFLASH1 = 3680,
SFLASH2 = 3692,
SFLASH4 = 3704,
SFLASH3 = 3707,
VLOAD = 3711,
VSAVE = 3712,
VSOUNDA = 3713,
VSOUNDB = 3714,
VGOREA = 3715,
VGOREB = 3716,
ZPIKEREADY = 3743,
ZPIKE = 3748,
ZPIKEATTACK = 3752,
ZPIKEATTACK2 = 3758,
ZBOWREADY = 3767,
ZBOWREADYEND = 3774,
ZBOWCOCK = 3775,
ZBOWWALK = 3776,
ZBOWATTACK = 3781,
ZKNIFEREADY = 3786,
ZKNIFEATTACK = 3798,
ZKNIFEATTACK2 = 3804,
ZAXEREADY = 3808,
ZAXEATTACK = 3817,
ZAXEATTACK2 = 3832,
ZFREEZE = 3840,
ZFIREBALL = 3855,
ZLIGHT = 3865,
ZSTARATTACK = 3875,
ZSTARATTACK2 = 3884,
ZTWOHANDREADY = 3888,
ZTWOHANDATTACK = 3900,
ZTWOHANDATTACK2 = 3915,
ZSHORTREADY = 3922,
ZSHORTATTACK = 3929,
ZSHORTATTACKONE = 3933,
ZSHORTATTACK2 = 3939,
ZHALBERDREADY = 3946,
ZHALBERDATTACK = 3948,
ZHALBERDATTACK2 = 3957,
ROUNDSHIELD = 3961,
x(STAINQ, 180)
x(FLOORMIRROR, 182)
x(STARMAP, 208)
x(BLOODSPLAT1, 212)
x(BLOODSPLAT1END, 222)
x(BLOODSPLAT2, 223)
x(BLOODSPLAT2END, 228)
x(WEAPON8, 229)
x(SILVERBAG, 234)
x(GOLDBAG, 235)
x(GOLDBAG2, 236)
x(GOLDCOINS, 237)
x(GOLDCOINS2, 238)
x(SILVERCOINS, 239)
x(WALLPIKE, 356)
x(WALLSWORD, 357)
x(WALLBOW, 358)
x(WALLAXE, 359)
x(STAINTRIANGLE, 410)
x(STAINFLOWER, 411)
x(STAINTHIN, 412)
x(PATROLPOINT, 447)
x(CONE, 449)
x(STAINCIRCLE, 451)
x(STAINCIRCLEBREAK, 452)
x(STAINCIRCLEEND, 457)
x(STAINHEAD, 498)
x(STAINSNAKE, 499)
x(SKULLPULLCHAIN1, 539)
x(GONZOSHIELD, 540)
x(SKULLPULLCHAIN3, 541)
x(SPARKBALL, 602)
x(WEAPON3A, 670)
x(SLIMESPLASH, 821)
x(LASTSLIMESPLASH, 827)
x(DAFONT, 864)
x(ZFIRE, 905)
x(IMP, 922)
x(IMPATTACK, 952)
x(IMPDIE, 958)
x(IMPPAIN, 959)
x(IMPDEAD, 967)
x(THEMAINMENU, 1028)
x(THEMAINMENUWITH, 1029)
x(THENEWGAME, 1030)
x(THELOADSAVE, 1031)
x(THEOPTIONS, 1032)
x(THEHELP, 1033)
x(THEQUIT, 1034)
x(ZCREDITS, 1035)
x(ZWEAPON, 1036)
x(ZSPELL, 1037)
x(ZKEN, 1038)
x(ZCREDITS2, 1039)
x(ZMOVE, 1040)
x(ZMOVE2, 1041)
x(ZPOTION, 1042)
x(ZCREDITS3, 1043)
x(ZARTIST, 1044)
x(ZSAVE, 1045)
x(ZLOAD, 1046)
x(ZGOREPG, 1047)
x(VMAINBLANK, 1048)
x(VMAIN, 1049)
x(VNEW, 1050)
x(VCREDIT1, 1055)
x(DALOAD, 1065)
x(DASAVE, 1066)
x(ZLOADSAVE, 1067)
x(ZSURE, 1068)
x(THEORDER, 1069)
x(STHEORDER, 1070)
x(ZOPS, 1072)
x(DASOUND, 1073)
x(DAGAMEPLAY, 1074)
x(DACONTROLS, 1075)
x(DASLIDER, 1076)
x(ZCDPLAYER, 1077)
x(STAINGLASS1, 1079)
x(STAINGLASS2, 1086)
x(STAINGLASS3, 1093)
x(STAINGLASS4, 1100)
x(STAINGLASS5, 1107)
x(STAINGLASS6, 1114)
x(STAINGLASS7, 1121)
x(STAINGLASS8, 1128)
x(STAINGLASS9, 1135)
x(CDMUVOL, 1142)
x(REDSHUFFLE, 1164)
x(ZZGORE, 1182)
x(ZZBLOOD, 1183)
x(ZZDIFFICULTY, 1184)
x(ZCONTROLS, 1185)
x(ZZSLIDER, 1198)
x(ZZON, 1199)
x(ZZOFF, 1200)
x(ZZONLITE, 1201)
x(ZZOFFLITE, 1202)
x(EXPLOSTART, 1203)
x(EXPLOEND, 1215)
x(ARROWFLAME, 1216)
x(STAINSCENE, 1658)
x(STAINSKULL, 1660)
x(STAINGARGO, 1661)
x(STAINMU, 1662)
x(SHARD, 1687)
x(DEMON, 1935)
x(GONZOBSHIELD, 2432)
x(GONZOCSHIELD, 2439)
x(GONZOGSHIELD, 2446)
x(STONEGONZOCHM, 2483)
x(STONEGONZOGSH, 2484)
x(STONEGRONDOVAL, 2485)
x(STONEGONZOBSW, 2486)
x(STONEGONZOBSH, 2497)
x(STONEGONZOBSW2, 2498)
x(SBLUEKNIGHTS1, 2705)
x(SBLUEKNIGHTS2, 2706)
x(SBROWNKNIGHTS1, 2707)
x(SBROWNKNIGHTS2, 2708)
x(SPURPLEKNIGHTS1, 2713)
x(SPURPLEKNIGHTS2, 2714)
x(SREDKNIGHTS1, 2715)
x(SREDKNIGHTS2, 2716)
x(NEWGUYBOW, 2750)
x(NEWGUYPUNCH, 2780)
x(GONZOBSHPAIN, 3006)
x(GONZOBSHDEAD, 3016)
x(GONZOCSW, 3017)
x(GONZOCSWAT, 3047)
x(GONZOCSWPAIN, 3077)
x(GONZOCSWDEAD, 3089)
x(KURTSTAND, 3090)
x(KURTKNEE, 3095)
x(KURTJUMP, 3100)
x(KURTAT, 3110)
x(GONZOCHMAT, 3120)
x(KURTPUNCH, 3140)
x(KURTREADY, 3160)
x(NEWGUY, 3170)
x(NEWGUYMACE, 3200)
x(NEWGUYDIE, 3230)
x(NEWGUYDEAD, 3239)
x(NEWGUYSTAND, 3243)
x(NEWGUYKNEE, 3248)
x(GONZOCSHPAIN, 3268)
x(GONZOCSHDEAD, 3278)
x(GONZOGSW, 3279)
x(GONZOGSWAT, 3309)
x(GONZOGSWPAIN, 3339)
x(GONZOGSWDEAD, 3351)
x(GONZOGHM, 3352)
x(GONZOGHMAT, 3382)
x(GONZOGHMPAIN, 3412)
x(GONZOGHMDEAD, 3425)
x(GONZOGSH, 3426)
x(GONZOGSHAT, 3474)
x(GONZOGSHPAIN, 3530)
x(GONZOGSHDEAD, 3540)
x(KATIE, 3541)
x(KATIEASS, 3561)
x(KATIEAT, 3566)
x(KATIEPAIN, 3583)
x(KATIEDEAD, 3591)
x(NEWGUYMACEMU, 3592)
x(NEWGUYCAST, 3602)
x(NEWGUYPAIN, 3612)
x(GONZOHMJUMP, 3630)
x(GONZOHMJUMPEND, 3635)
x(GONZOSHJUMP, 3636)
x(GONZOSHJUMPEND, 3641)
x(ZFLASHER1, 3650)
x(ZFLASHER2, 3662)
x(SFLASH1, 3680)
x(SFLASH2, 3692)
x(SFLASH4, 3704)
x(SFLASH3, 3707)
x(VLOAD, 3711)
x(VSAVE, 3712)
x(VSOUNDA, 3713)
x(VSOUNDB, 3714)
x(VGOREA, 3715)
x(VGOREB, 3716)
x(ZPIKEREADY, 3743)
x(ZPIKE, 3748)
x(ZPIKEATTACK, 3752)
x(ZPIKEATTACK2, 3758)
x(ZBOWREADY, 3767)
x(ZBOWREADYEND, 3774)
x(ZBOWCOCK, 3775)
x(ZBOWWALK, 3776)
x(ZBOWATTACK, 3781)
x(ZKNIFEREADY, 3786)
x(ZKNIFEATTACK, 3798)
x(ZKNIFEATTACK2, 3804)
x(ZAXEREADY, 3808)
x(ZAXEATTACK, 3817)
x(ZAXEATTACK2, 3832)
x(ZFREEZE, 3840)
x(ZFIREBALL, 3855)
x(ZLIGHT, 3865)
x(ZSTARATTACK, 3875)
x(ZSTARATTACK2, 3884)
x(ZTWOHANDREADY, 3888)
x(ZTWOHANDATTACK, 3900)
x(ZTWOHANDATTACK2, 3915)
x(ZSHORTREADY, 3922)
x(ZSHORTATTACK, 3929)
x(ZSHORTATTACKONE, 3933)
x(ZSHORTATTACK2, 3939)
x(ZHALBERDREADY, 3946)
x(ZHALBERDATTACK, 3948)
x(ZHALBERDATTACK2, 3957)
x(ROUNDSHIELD, 3961)
WH2KNIFEREADY = 1248,
WH2KNIFEATTACK = 1260,
WH2RFIST = 1267,
WH2SWORDATTACK = 1290,
WH2MORNINGSTAR = 1305,
WH2BOWREADY = 1312,
WH2BOWREADYEND = 1318,
WH2BOWWALK = 1322,
WH2KNIFEATTACK2 = 1328,
WH2SWORDPULL = 1332,
WH2SWORDATTACK2 = 1339,
WH2MORNINGATTACK2 = 1347,
WH2MUMEDUSA = 1352,
WH2MUTWOHANDS = 1362,
WH2BMUTWOHANDS = 1377,
WH2GOBSWORDPULL = 1389,
WH2GOBSWORDATTACK = 1396,
WH2GOBSWORDATTACK2 = 1403,
WH2BIGAXEATTACK = 1410,
WH2BIGAXEATTACK2 = 1420,
WH2BIGAXEDRAW = 1428,
WH2HALBERDATTACK1 = 1437,
WH2HALBERDATTACK2 = 1442,
WH2HALBERDDRAW = 1446,
WH2PIKEDRAW = 1450,
WH2PIKEATTACK1 = 1456,
WH2EXCALATTACK1 = 1462,
WH2EXCALATTACK2 = 1472,
WH2EXCALDRAW = 1480,
WH2BIGAXEDRAW9 = 1493,
WH2BIGAXEDRAW10 = 1494,
WH2GEARS2START = 1497,
WH2HORNEDSKULL = 1502,
WH2THEFONT = 1510,
WH2CRYSTALSTAFF = 1550,
WH2TORCH = 1553,
WH2WEAPON1 = 1566,
WH2WEAPON1A = 1570,
WH2AMULETOFTHEMIST = 1574,
WH2WEAPON2 = 1582,
WH2BRASSKEY = 1623,
WH2BLACKKEY = 1631,
WH2GLASSKEY = 1639,
WH2IVORYKEY = 1647,
WH2NEWCHUNK = 1663,
WH2BOWLOFFIRE = 1704,
WH2SPAWNFIREBALL = 1717,
WH2PENTAGRAM = 1759,
WH2THEHORN = 1767,
WH2BOW = 1775,
WH2SWINGGATE3 = 1788,
WH2PLATEARMOR = 1793,
WH2HELMET = 1801,
WH2CHAINMAIL = 1809,
WH2SCROLLSCARE = 1817,
WH2SCROLLNUKE = 1825,
WH2SCROLLFLY = 1833,
WH2SCROLLFIREBALL = 1841,
WH2SCROLLFREEZE = 1849,
WH2SCROLLNIGHT = 1857,
WH2SCROLLMAGIC = 1865,
WH2SCROLLOPEN = 1873,
WH2LEATHERARMOR = 1881,
WH2QUIVER = 1889,
WH2SWINGGATE4 = 1897,
WH2SWINGGATE5 = 1898,
WH2SMOKEFX = 1903,
WH2STANDINTORCH = 1907,
WH2PENTADOOR3 = 1926,
WH2PENTADOOR4 = 1927,
WH2PENTADOOR5 = 1928,
WH2PENTADOOR6 = 1929,
WH2PENTADOOR7 = 1930,
WH2SCARY = 1932,
WH2FISH = 1944,
WH2LEVERUP = 1946,
WH2LEVERDOWN = 1948,
WH2SPAWNJAVLIN = 1957,
WH2RAT = 1961,
WH2GUARDIAN = 1993,
WH2GUARDIANATTACK = 2001,
WH2DART = 2009,
WH2WEAPON4 = 2026,
WH2WEAPON6 = 2038,
WH2WEAPON5 = 2046,
WH2WEAPON5B = 2054,
WH2THROWHALBERD = 2065,
WH2WEAPON7 = 2066,
WH2THROWPIKE = 2070,
WH2EXPLO2 = 2095,
WH2SHATTERVASE = 2123,
WH2SHATTERVASE2 = 2130,
WH2SHATTERVASE3 = 2137,
WH2HANGMAN = 2144,
WH2SKELETON = 2155,
WH2SKELETONATTACK = 2180,
WH2SKELETONSKULL = 2185,
WH2SKELETONUP = 2190,
WH2SKELETONDIE = 2191,
WH2SKELETONDEAD = 2197,
WH2BONECHUNK1 = 2198,
WH2BONECHUNKEND = 2207,
WH2PIKEATTACK2 = 2208,
WH2GOBWEAPON = 2217,
WH2SFLASKBLUE = 2239,
WH2SFLASKGREEN = 2240,
WH2SFLASKOCHRE = 2241,
WH2SFLASKRED = 2242,
WH2SFLASKTAN = 2243,
WH2SFLASKBLACK = 2244,
WH2SHEALTHFONT = 2245,
WH2SSCOREFONT = 2255,
WH2SPOTIONFONT = 2265,
WH2SPOTIONBACKPIC = 2279,
WH2SPOTIONARROW = 2280,
WH2SSPELLBOOKBLANK = 2285,
WH2SSPELLBOOK2 = 2293,
WH2SSPELLBOOK3 = 2301,
WH2SSPELLBOOK4 = 2309,
WH2SSPELLBOOK5 = 2316,
WH2SSPELLBOOK6 = 2323,
WH2SSPELLBOOK7 = 2331,
WH2SSPELLBOOK8 = 2339,
WH2SARROWS = 2347,
WH2SPLAYERLVL = 2348,
WH2SSTATUSBAR = 2357,
WH2SKEYBLANK = 2358,
WH2SKEYBRASS = 2359,
WH2SKEYBLACK = 2360,
WH2SKEYGLASS = 2361,
WH2SKEYIVORY = 2362,
WH2SHEALTHBACK = 2364,
WH2SSCOREBACKPIC = 2367,
WH2SNDEFFECT = 2368,
WH2SNDLOOP = 2369,
WH2SNDLOOPOFF = 2370,
WH2BROWNCHUNKSTART = 2386,
WH2GREYCHUNKSTART = 2394,
WH2REDCHUNKSTART = 2402,
WH2GREENCHUNKSTART = 2410,
WH2TANCHUNKSTART = 2418,
WH2WILLOW = 2426,
WH2SPIKES = 2487,
WH2STHEFLAG = 2490,
WH2GRONHALATTACK = 2502,
WH2GRONHALATTACKEND = 2506,
WH2GROLHALREADY = 2507,
WH2GRONHALREADYEND = 2508,
WH2GRONHAL = 2537,
WH2GRONHALPAIN = 2557,
WH2GRONHALDIE = 2558,
WH2GRONSWATTACK = 2559,
WH2GRONSW = 2579,
WH2GRONSWPAIN = 2599,
WH2GRONSWDIE = 2600,
WH2GRONMUATTACK = 2601,
WH2GRONDIE = 2631,
WH2GRONDEAD = 2637,
WH2GRONMU = 2638,
WH2GRONMUPAIN = 2658,
WH2GRONMUDIE = 2659,
WH2GRONSHIELD = 2678,
WH2SHIELD = 2682,
};
END_WH_NS
y(KNIFEREADY, 1248)
y(KNIFEATTACK, 1260)
y(RFIST, 1267)
y(SWORDATTACK, 1290)
y(MORNINGSTAR, 1305)
y(BOWREADY, 1312)
y(BOWREADYEND, 1318)
y(BOWWALK, 1322)
y(KNIFEATTACK2, 1328)
y(SWORDPULL, 1332)
y(SWORDATTACK2, 1339)
y(MORNINGATTACK2, 1347)
y(MUMEDUSA, 1352)
y(MUTWOHANDS, 1362)
y(BMUTWOHANDS, 1377)
y(GOBSWORDPULL, 1389)
y(GOBSWORDATTACK, 1396)
y(GOBSWORDATTACK2, 1403)
y(BIGAXEATTACK, 1410)
y(BIGAXEATTACK2, 1420)
y(BIGAXEDRAW, 1428)
y(HALBERDATTACK1, 1437)
y(HALBERDATTACK2, 1442)
y(HALBERDDRAW, 1446)
y(PIKEDRAW, 1450)
y(PIKEATTACK1, 1456)
y(EXCALATTACK1, 1462)
y(EXCALATTACK2, 1472)
y(EXCALDRAW, 1480)
y(BIGAXEDRAW9, 1493)
y(BIGAXEDRAW10, 1494)
y(GEARS2START, 1497)
y(HORNEDSKULL, 1502)
y(THEFONT, 1510)
y(CRYSTALSTAFF, 1550)
y(TORCH, 1553)
y(WEAPON1, 1566)
y(WEAPON1A, 1570)
y(AMULETOFTHEMIST, 1574)
y(WEAPON2, 1582)
y(BRASSKEY, 1623)
y(BLACKKEY, 1631)
y(GLASSKEY, 1639)
y(IVORYKEY, 1647)
y(NEWCHUNK, 1663)
y(BOWLOFFIRE, 1704)
y(SPAWNFIREBALL, 1717)
y(PENTAGRAM, 1759)
y(THEHORN, 1767)
y(BOW, 1775)
y(SWINGGATE3, 1788)
y(PLATEARMOR, 1793)
y(HELMET, 1801)
y(CHAINMAIL, 1809)
y(SCROLLSCARE, 1817)
y(SCROLLNUKE, 1825)
y(SCROLLFLY, 1833)
y(SCROLLFIREBALL, 1841)
y(SCROLLFREEZE, 1849)
y(SCROLLNIGHT, 1857)
y(SCROLLMAGIC, 1865)
y(SCROLLOPEN, 1873)
y(LEATHERARMOR, 1881)
y(QUIVER, 1889)
y(SWINGGATE4, 1897)
y(SWINGGATE5, 1898)
y(SMOKEFX, 1903)
y(STANDINTORCH, 1907)
y(PENTADOOR3, 1926)
y(PENTADOOR4, 1927)
y(PENTADOOR5, 1928)
y(PENTADOOR6, 1929)
y(PENTADOOR7, 1930)
y(SCARY, 1932)
y(FISH, 1944)
y(LEVERUP, 1946)
y(LEVERDOWN, 1948)
y(SPAWNJAVLIN, 1957)
y(RAT, 1961)
y(GUARDIAN, 1993)
y(GUARDIANATTACK, 2001)
y(DART, 2009)
y(WEAPON4, 2026)
y(WEAPON6, 2038)
y(WEAPON5, 2046)
y(WEAPON5B, 2054)
y(THROWHALBERD, 2065)
y(WEAPON7, 2066)
y(THROWPIKE, 2070)
y(EXPLO2, 2095)
y(SHATTERVASE, 2123)
y(SHATTERVASE2, 2130)
y(SHATTERVASE3, 2137)
y(HANGMAN, 2144)
y(SKELETON, 2155)
y(SKELETONATTACK, 2180)
y(SKELETONSKULL, 2185)
y(SKELETONUP, 2190)
y(SKELETONDIE, 2191)
y(SKELETONDEAD, 2197)
y(BONECHUNK1, 2198)
y(BONECHUNKEND, 2207)
y(PIKEATTACK2, 2208)
y(GOBWEAPON, 2217)
y(SFLASKBLUE, 2239)
y(SFLASKGREEN, 2240)
y(SFLASKOCHRE, 2241)
y(SFLASKRED, 2242)
y(SFLASKTAN, 2243)
y(SFLASKBLACK, 2244)
y(SHEALTHFONT, 2245)
y(SSCOREFONT, 2255)
y(SPOTIONFONT, 2265)
y(SPOTIONBACKPIC, 2279)
y(SPOTIONARROW, 2280)
y(SSPELLBOOKBLANK, 2285)
y(SSPELLBOOK2, 2293)
y(SSPELLBOOK3, 2301)
y(SSPELLBOOK4, 2309)
y(SSPELLBOOK5, 2316)
y(SSPELLBOOK6, 2323)
y(SSPELLBOOK7, 2331)
y(SSPELLBOOK8, 2339)
y(SARROWS, 2347)
y(SPLAYERLVL, 2348)
y(SSTATUSBAR, 2357)
y(SKEYBLANK, 2358)
y(SKEYBRASS, 2359)
y(SKEYBLACK, 2360)
y(SKEYGLASS, 2361)
y(SKEYIVORY, 2362)
y(SHEALTHBACK, 2364)
y(SSCOREBACKPIC, 2367)
y(SNDEFFECT, 2368)
y(SNDLOOP, 2369)
y(SNDLOOPOFF, 2370)
y(BROWNCHUNKSTART, 2386)
y(GREYCHUNKSTART, 2394)
y(REDCHUNKSTART, 2402)
y(GREENCHUNKSTART, 2410)
y(TANCHUNKSTART, 2418)
y(WILLOW, 2426)
y(SPIKES, 2487)
y(STHEFLAG, 2490)
y(GRONHALATTACK, 2502)
y(GRONHALATTACKEND, 2506)
y(GROLHALREADY, 2507)
y(GRONHALREADYEND, 2508)
y(GRONHAL, 2537)
y(GRONHALPAIN, 2557)
y(GRONHALDIE, 2558)
y(GRONSWATTACK, 2559)
y(GRONSW, 2579)
y(GRONSWPAIN, 2599)
y(GRONSWDIE, 2600)
y(GRONMUATTACK, 2601)
y(GRONDIE, 2631)
y(GRONDEAD, 2637)
y(GRONMU, 2638)
y(GRONMUPAIN, 2658)
y(GRONMUDIE, 2659)
y(GRONSHIELD, 2678)
y(SHIELD, 2682)

View file

@ -29,18 +29,24 @@ version "4.3"
#include "zscript/constants.zs"
#include "zscript/razebase.zs"
#include "zscript/screenjob.zs"
#include "zscript/games/duke/dukegame.zs"
#include "zscript/games/duke/ui/screens.zs"
#include "zscript/games/duke/ui/cutscenes.zs"
#include "zscript/games/duke/ui/menu.zs"
#include "zscript/games/blood/bloodgame.zs"
#include "zscript/games/blood/ui/menu.zs"
#include "zscript/games/blood/ui/screens.zs"
#include "zscript/games/sw/swgame.zs"
#include "zscript/games/sw/ui/menu.zs"
#include "zscript/games/sw/ui/screens.zs"
#include "zscript/games/exhumed/exhumedgame.zs"
#include "zscript/games/exhumed/ui/menu.zs"
#include "zscript/games/exhumed/ui/screens.zs"
#include "zscript/games/wh/whgame.zs"
#include "zscript/games/wh/ui/menu_wh1.zs"
#include "zscript/games/wh/ui/menu_wh2.zs"
#include "zscript/games/exhumed/ui/screens.zs"

View file

@ -0,0 +1,158 @@
class WHSummaryScreen : SkippableScreenJob
{
ScreenJob Init(MapRecord mr, SummaryInfo info)
{
Super.Init(fadein|fadeout);
SetParameters(mr, info);
//plr.score += bonus;
}
void drawText(int x, int y, String text)
{
Screen.DrawText(SmallFont, Font.CR_UNTRANSLATED, x, y, text, DTA_FullscreenScale, FSMode_Fit320x200);
}
override void Start()
{
Witchaven.PlaySound(WhSnd.S_CHAINDOOR1);
}
override void Draw()
{
static const String ratings[] = { "$txtw_poor", "$txtw_average", "$txtw_good", "$txtw_perfect" };
Screen.DrawTexture(TexMan.CheckForTexture("VMAINBLANK", TexMan.Type_Any), 0, 0, DTA_Fullscreen, FSMode_ScaleToFit43);
drawText(10, 13, currentLevel.DisplayName());
drawText(10, 31, "$Level conquered");
drawText(10, 64, "$Enemies killed");
drawText(160 + 48 + 14, 64, String.Format("%d %s %d", stats.Kills, StringTable.Localize("$TXT_OF"), stats.MaxKills));
drawText(10, 64 + 18, "$Treasures found");
drawText(160 + 48 + 14, 64 + 18, String.Format("%d %s %d", stats.Secrets, "$TXT_OF", stats.MaxSecrets));
drawText(10, 64 + 2 * 18, GStrings("$Experience gained"));
drawText(160 + 48 + 14, 64 + 2 * 18, String.Format("%d", stats.score));
drawText(10, 64 + 3 * 18, "$Rating");
drawText(160 + 48 + 14, 64 + 3 * 18, ratings[stats.Supersecrets]);
drawText(10, 64 + 4 * 18, "$TXT_Bonus");
drawText(160 + 48 + 14, 64 + 4 * 18, String.Format("%d", bonus));
}
}
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
class WHLoadScreen : ScreenJob
{
MapRecord rec;
ScreenJob Init(MapRecord maprec)
{
Super.Init(fadein);
rec = maprec;
return self;
}
override void OnTick()
{
if (fadestate == visible) jobstate = finished;
}
void drawText(int x, int y, const char* text)
{
Screen.DrawText(SmallFont, Font.CR_UNTRANSLATED, x - SmallFont->StringWidth(text)/2, y, text, DTA_FullscreenScale, FSMode_Fit320x200);
}
override void Draw()
{
Screen.DrawTexture(TexMan.CheckForTexture("MAINMENU", TexMan.Type_Any), 0, 0, DTA_Fullscreen, FSMode_ScaleToFit43);
drawText(160, 100, "$TXT_LOADING");
drawText(160, 114, "$TXTB_PLSWAIT");
return 0;
}
}
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
class VictoryScreen : ImageScreen
{
int sound;
ScreenJob Init(String tex, int snd)
{
sound = snd;
Super.InitNamed(tex, fadein | fadeout, 0x7fffffff, 0);
return self;
}
override void Start()
{
if (sound > 0) Witchaven.PlaySound(sound);
}
}
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
class WHCutscenes
{
//---------------------------------------------------------------------------
//
//
//
//---------------------------------------------------------------------------
static void BuildIntro(ScreenJobRunner runner)
{
Mus_Stop();
FX_StopAllSounds();
if (!userConfig.nologo)
{
runner.Append(MoviePlayerJob.Create(gameinfo.gameType & GAMEFLAG_WH2? "smk/intro.smk" : "intro.smk", 0));
}
}
static void BuildWH2Ending(ScreenJobRunner runner)
{
Mus_Stop();
FX_StopAllSounds();
if (!userConfig.nologo)
{
runner.Append(MoviePlayerJob.Create(g"smk/ending1.smk", 0));
runner.Append(MoviePlayerJob.Create(g"smk/ending2.smk", 0));
runner.Append(MoviePlayerJob.Create(g"smk/ending3.smk", 0));
}
}
static void BuildVictoryScreen(ScreenJobRunner runner)
{
runner.Append(new("VictoryScreen").Init("VICTORYA", -1));
runner.Append(new("VictoryScreen").Init("VICTORYB", WhSnd.S_DROPFLAG));
runner.Append(new("VictoryScreen").Init("VICTORYC", WhSnd.S_WISP2));
}
static void BuildLoading(ScreenJobRunner runner, MapRecord map)
{
runner.Append(new("WhLoadScreen").Init(map));
}
}

View file

@ -0,0 +1,10 @@
struct Witchaven native
{
native void PlaySound(int s);
}
class WhSnd
{
// This is a container for natively defined constants.
}

View file

@ -106,6 +106,8 @@ struct SummaryInfo native
native readonly int supersecrets;
native readonly int time;
native readonly int playercount;
native readonly int score;
native readonly int bonus;
native readonly bool cheated;
native readonly bool endofgame;
}