diff --git a/hhe/common.rb b/hhe/common.rb index 0a6b72c..b0a643b 100644 --- a/hhe/common.rb +++ b/hhe/common.rb @@ -1,4 +1,8 @@ +require "v1.0/config.rb" +require "v1.2/config.rb" +require "v1.3/config.rb" + # Symbolic sprite names, from info.h. SPRITE_NAMES = %w{ @@ -73,3 +77,12 @@ THING_FLAGS2 = %w{ MF2_DONTDRAW } +def set_config(name) + configs = [ Heretic_1_0, Heretic_1_2, Heretic_1_3 ] + + for config in configs + if name == config::NAME + include config + end + end +end diff --git a/hhe/dump-states b/hhe/dump-states index 89feabf..84f204d 100755 --- a/hhe/dump-states +++ b/hhe/dump-states @@ -4,411 +4,8 @@ require "scanf" require "common.rb" filename = ARGV[0] -offset = ARGV[1].scanf("%x")[0] -NUM_STATES=1206 - -# Locations of action pointer functions for Heretic 1.0. Hand-constructed. -# -# ./dump-states heretic.exe 8bf04 - -ACTION_POINTERS_1_0 = { - 78512 => "A_FreeTargMobj", - 82048 => "A_RestoreSpecialThing1", - 82128 => "A_RestoreSpecialThing2", - 78736 => "A_HideThing", - 78752 => "A_UnHideThing", - 81952 => "A_RestoreArtifact", - 76144 => "A_Scream", - 76784 => "A_Explode", - 76896 => "A_PodPain", - 77056 => "A_RemovePod", - 77104 => "A_MakePod", - 77728 => "A_InitKeyGizmo", - 77824 => "A_VolcanoSet", - 77856 => "A_VolcanoBlast", - 70480 => "A_BeastPuff", - 78080 => "A_VolcBallImpact", - 77520 => "A_SpawnTeleGlitter", - 77600 => "A_SpawnTeleGlitter2", - 77680 => "A_AccTeleGlitter", - 117648 => "A_Light0", - 111168 => "A_WeaponReady", - 111760 => "A_Lower", - 111920 => "A_Raise", - 112640 => "A_StaffAttackPL1", - 111696 => "A_ReFire", - 112784 => "A_StaffAttackPL2", - 111568 => "A_BeakReady", - 111856 => "A_BeakRaise", - 112272 => "A_BeakAttackPL1", - 112448 => "A_BeakAttackPL2", - 117184 => "A_GauntletAttack", - 112928 => "A_FireBlasterPL1", - 113072 => "A_FireBlasterPL2", - 115088 => "A_SpawnRippers", - 113760 => "A_FireMacePL1", - 114624 => "A_FireMacePL2", - 113904 => "A_MacePL1Check", - 114032 => "A_MaceBallImpact", - 114192 => "A_MaceBallImpact2", - 114752 => "A_DeathBallImpact", - 115568 => "A_FireSkullRodPL1", - 115648 => "A_FireSkullRodPL2", - 115776 => "A_SkullRodPL2Seek", - 115808 => "A_AddPlayerRain", - 116336 => "A_HideInCeiling", - 115984 => "A_SkullRodStorm", - 116272 => "A_RainImpact", - 113152 => "A_FireGoldWandPL1", - 113296 => "A_FireGoldWandPL2", - 116368 => "A_FirePhoenixPL1", - 116720 => "A_InitPhoenixPL2", - 116736 => "A_FirePhoenixPL2", - 117104 => "A_ShutdownPhoenixPL2", - 116496 => "A_PhoenixPuff", - 116480 => "A_RemovedPhoenixFunc", # anomaly! - 117120 => "A_FlameEnd", - 117152 => "A_FloatPuff", - 115232 => "A_FireCrossbowPL1", - 115312 => "A_FireCrossbowPL2", - 115456 => "A_BoltSpark", - 69984 => "A_Pain", - 76400 => "A_NoBlocking", - 78608 => "A_AddPlayerCorpse", - 78288 => "A_SkullPop", - 78704 => "A_FlameSnd", - 78448 => "A_CheckSkullFloor", - 78480 => "A_CheckSkullDone", - 71568 => "A_Feathers", - 71456 => "A_ChicLook", - 71488 => "A_ChicChase", - 71520 => "A_ChicPain", - 69872 => "A_FaceTarget", - 71376 => "A_ChicAttack", - 69200 => "A_Look", - 69328 => "A_Chase", - 71808 => "A_MummyAttack", - 71920 => "A_MummyAttack2", - 72048 => "A_MummySoul", - 108432 => "A_ContMobjSound", - 72016 => "A_MummyFX1Seek", - 74640 => "A_BeastAttack", - 75632 => "A_SnakeAttack", - 75712 => "A_SnakeAttack2", - 74752 => "A_HeadAttack", - 77344 => "A_BossDeath", - 75328 => "A_HeadIceImpact", - 75488 => "A_HeadFireGrow", - 75168 => "A_WhirlwindSeek", - 75792 => "A_ClinkAttack", - 75888 => "A_WizAtk1", - 75920 => "A_WizAtk2", - 75952 => "A_WizAtk3", - 75872 => "A_GhostOff", - 70592 => "A_ImpMeAttack", - 70672 => "A_ImpMsAttack", - 70880 => "A_ImpMsAttack2", - 70976 => "A_ImpDeath", - 71024 => "A_ImpXDeath1", - 71072 => "A_ImpXDeath2", - 70304 => "A_ImpExplode", - 70160 => "A_KnightAttack", - 70016 => "A_DripBlood", - 72144 => "A_Sor1Chase", - 72096 => "A_Sor1Pain", - 72192 => "A_Srcr1Attack", - 73456 => "A_SorZap", - 72480 => "A_SorcererRise", - 73488 => "A_SorRise", - 73616 => "A_SorSightSnd", - 72816 => "A_Srcr2Decide", - 72896 => "A_Srcr2Attack", - 73392 => "A_Sor2DthInit", - 73520 => "A_SorDSph", - 73424 => "A_Sor2DthLoop", - 73552 => "A_SorDExp", - 73584 => "A_SorDBon", - 73120 => "A_BlueSpark", - 73232 => "A_GenWizard", - 73648 => "A_MinotaurAtk1", - 73760 => "A_MinotaurDecide", - 74112 => "A_MinotaurAtk2", - 74352 => "A_MinotaurAtk3", - 74032 => "A_MinotaurCharge", - 74528 => "A_MntrFloorFire", - 77472 => "A_ESound", -} - -# Locations of action pointer functions for Heretic 1.2. Hand-constructed. -# -# ./dump-states heretic.exe 8e8b4 - -ACTION_POINTERS_1_2 = { - 81008 => "A_FreeTargMobj", - 84544 => "A_RestoreSpecialThing1", - 84592 => "A_RestoreSpecialThing2", - 81232 => "A_HideThing", - 81248 => "A_UnHideThing", - 84464 => "A_RestoreArtifact", - 78576 => "A_Scream", - 79248 => "A_Explode", - 79360 => "A_PodPain", - 79520 => "A_RemovePod", - 79568 => "A_MakePod", - 80192 => "A_InitKeyGizmo", - 80288 => "A_VolcanoSet", - 80320 => "A_VolcanoBlast", - 72992 => "A_BeastPuff", - 80544 => "A_VolcBallImpact", - 79984 => "A_SpawnTeleGlitter", - 80064 => "A_SpawnTeleGlitter2", - 80144 => "A_AccTeleGlitter", - 119824 => "A_Light0", - 113488 => "A_WeaponReady", - 114080 => "A_Lower", - 114240 => "A_Raise", - 114848 => "A_StaffAttackPL1", - 114016 => "A_ReFire", - 114992 => "A_StaffAttackPL2", - 113888 => "A_BeakReady", - 114176 => "A_BeakRaise", - 114480 => "A_BeakAttackPL1", - 114656 => "A_BeakAttackPL2", - 119344 => "A_GauntletAttack", - 115136 => "A_FireBlasterPL1", - 115280 => "A_FireBlasterPL2", - 117280 => "A_SpawnRippers", - 115968 => "A_FireMacePL1", - 116816 => "A_FireMacePL2", - 116112 => "A_MacePL1Check", - 116224 => "A_MaceBallImpact", - 116384 => "A_MaceBallImpact2", - 116944 => "A_DeathBallImpact", - 117760 => "A_FireSkullRodPL1", - 117840 => "A_FireSkullRodPL2", - 117968 => "A_SkullRodPL2Seek", - 118000 => "A_AddPlayerRain", - 118512 => "A_HideInCeiling", - 118176 => "A_SkullRodStorm", - 118448 => "A_RainImpact", - 115360 => "A_FireGoldWandPL1", - 115504 => "A_FireGoldWandPL2", - 118544 => "A_FirePhoenixPL1", - 118880 => "A_InitPhoenixPL2", - 118896 => "A_FirePhoenixPL2", - 119264 => "A_ShutdownPhoenixPL2", - 118656 => "A_PhoenixPuff", - #0000 => "A_RemovedPhoenixFunc", # anomaly! - 119280 => "A_FlameEnd", - 119312 => "A_FloatPuff", - 117424 => "A_FireCrossbowPL1", - 117504 => "A_FireCrossbowPL2", - 117648 => "A_BoltSpark", - 72496 => "A_Pain", - 78832 => "A_NoBlocking", - 81104 => "A_AddPlayerCorpse", - 80752 => "A_SkullPop", - 81200 => "A_FlameSnd", - 80976 => "A_CheckBurnGone", - 80912 => "A_CheckSkullFloor", - 80944 => "A_CheckSkullDone", - 74080 => "A_Feathers", - 73968 => "A_ChicLook", - 74000 => "A_ChicChase", - 74032 => "A_ChicPain", - 72400 => "A_FaceTarget", - 73888 => "A_ChicAttack", - 71728 => "A_Look", - 71856 => "A_Chase", - 74288 => "A_MummyAttack", - 74400 => "A_MummyAttack2", - 74528 => "A_MummySoul", - 110816 => "A_ContMobjSound", - 74496 => "A_MummyFX1Seek", - 77120 => "A_BeastAttack", - 78048 => "A_SnakeAttack", - 78128 => "A_SnakeAttack2", - 77232 => "A_HeadAttack", - 79808 => "A_BossDeath", - 77824 => "A_HeadIceImpact", - 77984 => "A_HeadFireGrow", - 77664 => "A_WhirlwindSeek", - 78208 => "A_ClinkAttack", - 78320 => "A_WizAtk1", - 78352 => "A_WizAtk2", - 78384 => "A_WizAtk3", - 78304 => "A_GhostOff", - 73104 => "A_ImpMeAttack", - 73184 => "A_ImpMsAttack", - 73392 => "A_ImpMsAttack2", - 73488 => "A_ImpDeath", - 73536 => "A_ImpXDeath1", - 73584 => "A_ImpXDeath2", - 72816 => "A_ImpExplode", - 72672 => "A_KnightAttack", - 72528 => "A_DripBlood", - 74624 => "A_Sor1Chase", - 74576 => "A_Sor1Pain", - 74672 => "A_Srcr1Attack", - 75936 => "A_SorZap", - 74960 => "A_SorcererRise", - 75968 => "A_SorRise", - 76096 => "A_SorSightSnd", - 75296 => "A_Srcr2Decide", - 75376 => "A_Srcr2Attack", - 75872 => "A_Sor2DthInit", - 76000 => "A_SorDSph", - 75904 => "A_Sor2DthLoop", - 76032 => "A_SorDExp", - 76064 => "A_SorDBon", - 75600 => "A_BlueSpark", - 75712 => "A_GenWizard", - 76128 => "A_MinotaurAtk1", - 76240 => "A_MinotaurDecide", - 76592 => "A_MinotaurAtk2", - 76832 => "A_MinotaurAtk3", - 76512 => "A_MinotaurCharge", - 77008 => "A_MntrFloorFire", - 79936 => "A_ESound", -} - -# Action pointers for Heretic 1.3. -# -# ./dump-states heretic.exe 8e8b4 - -ACTION_POINTERS_1_3 = { - 81072 => "A_FreeTargMobj", - 84608 => "A_RestoreSpecialThing1", - 84656 => "A_RestoreSpecialThing2", - 81296 => "A_HideThing", - 81312 => "A_UnHideThing", - 84528 => "A_RestoreArtifact", - 78640 => "A_Scream", - 79312 => "A_Explode", - 79424 => "A_PodPain", - 79584 => "A_RemovePod", - 79632 => "A_MakePod", - 80256 => "A_InitKeyGizmo", - 80352 => "A_VolcanoSet", - 80384 => "A_VolcanoBlast", - 73056 => "A_BeastPuff", - 80608 => "A_VolcBallImpact", - 80048 => "A_SpawnTeleGlitter", - 80128 => "A_SpawnTeleGlitter2", - 80208 => "A_AccTeleGlitter", - 120064 => "A_Light0", - 113728 => "A_WeaponReady", - 114320 => "A_Lower", - 114480 => "A_Raise", - 115088 => "A_StaffAttackPL1", - 114256 => "A_ReFire", - 115232 => "A_StaffAttackPL2", - 114128 => "A_BeakReady", - 114416 => "A_BeakRaise", - 114720 => "A_BeakAttackPL1", - 114896 => "A_BeakAttackPL2", - 119584 => "A_GauntletAttack", - 115376 => "A_FireBlasterPL1", - 115520 => "A_FireBlasterPL2", - 117520 => "A_SpawnRippers", - 116208 => "A_FireMacePL1", - 117056 => "A_FireMacePL2", - 116352 => "A_MacePL1Check", - 116464 => "A_MaceBallImpact", - 116624 => "A_MaceBallImpact2", - 117184 => "A_DeathBallImpact", - 118000 => "A_FireSkullRodPL1", - 118080 => "A_FireSkullRodPL2", - 118208 => "A_SkullRodPL2Seek", - 118240 => "A_AddPlayerRain", - 118752 => "A_HideInCeiling", - 118416 => "A_SkullRodStorm", - 118688 => "A_RainImpact", - 115600 => "A_FireGoldWandPL1", - 115744 => "A_FireGoldWandPL2", - 118784 => "A_FirePhoenixPL1", - 119120 => "A_InitPhoenixPL2", - 119136 => "A_FirePhoenixPL2", - 119504 => "A_ShutdownPhoenixPL2", - 118896 => "A_PhoenixPuff", - #0000 => "A_RemovedPhoenixFunc", # anomaly! - 119520 => "A_FlameEnd", - 119552 => "A_FloatPuff", - 117664 => "A_FireCrossbowPL1", - 117744 => "A_FireCrossbowPL2", - 117888 => "A_BoltSpark", - 72560 => "A_Pain", - 78896 => "A_NoBlocking", - 81168 => "A_AddPlayerCorpse", - 80816 => "A_SkullPop", - 81264 => "A_FlameSnd", - 81040 => "A_CheckBurnGone", - 80976 => "A_CheckSkullFloor", - 81008 => "A_CheckSkullDone", - 74144 => "A_Feathers", - 74032 => "A_ChicLook", - 74064 => "A_ChicChase", - 74096 => "A_ChicPain", - 72464 => "A_FaceTarget", - 73952 => "A_ChicAttack", - 71792 => "A_Look", - 71920 => "A_Chase", - 74352 => "A_MummyAttack", - 74464 => "A_MummyAttack2", - 74592 => "A_MummySoul", - 111056 => "A_ContMobjSound", - 74560 => "A_MummyFX1Seek", - 77184 => "A_BeastAttack", - 78112 => "A_SnakeAttack", - 78192 => "A_SnakeAttack2", - 77296 => "A_HeadAttack", - 79872 => "A_BossDeath", - 77888 => "A_HeadIceImpact", - 78048 => "A_HeadFireGrow", - 77728 => "A_WhirlwindSeek", - 78272 => "A_ClinkAttack", - 78384 => "A_WizAtk1", - 78416 => "A_WizAtk2", - 78448 => "A_WizAtk3", - 78368 => "A_GhostOff", - 73168 => "A_ImpMeAttack", - 73248 => "A_ImpMsAttack", - 73456 => "A_ImpMsAttack2", - 73552 => "A_ImpDeath", - 73600 => "A_ImpXDeath1", - 73648 => "A_ImpXDeath2", - 72880 => "A_ImpExplode", - 72736 => "A_KnightAttack", - 72592 => "A_DripBlood", - 74688 => "A_Sor1Chase", - 74640 => "A_Sor1Pain", - 74736 => "A_Srcr1Attack", - 76000 => "A_SorZap", - 75024 => "A_SorcererRise", - 76032 => "A_SorRise", - 76160 => "A_SorSightSnd", - 75360 => "A_Srcr2Decide", - 75440 => "A_Srcr2Attack", - 75936 => "A_Sor2DthInit", - 76064 => "A_SorDSph", - 75968 => "A_Sor2DthLoop", - 76096 => "A_SorDExp", - 76128 => "A_SorDBon", - 75664 => "A_BlueSpark", - 75776 => "A_GenWizard", - 76192 => "A_MinotaurAtk1", - 76304 => "A_MinotaurDecide", - 76656 => "A_MinotaurAtk2", - 76896 => "A_MinotaurAtk3", - 76576 => "A_MinotaurCharge", - 77072 => "A_MntrFloorFire", - 80000 => "A_ESound", -} - -#ACTION_POINTERS = ACTION_POINTERS_1_0 -ACTION_POINTERS = ACTION_POINTERS_1_2 -#ACTION_POINTERS = ACTION_POINTERS_1_3 +set_config(ARGV[1]) def read_int(file) c1 = file.getc @@ -457,7 +54,7 @@ end states = [] File.open(filename) do |file| - file.seek(offset) + file.seek(STATE_OFFSET) NUM_STATES.times do states.push(read_state(file)) diff --git a/hhe/v1.0/config.rb b/hhe/v1.0/config.rb new file mode 100755 index 0000000..927de31 --- /dev/null +++ b/hhe/v1.0/config.rb @@ -0,0 +1,141 @@ + +module Heretic_1_0 + +NAME="v1.0" + +NUM_STATES=1206 + +STATE_OFFSET=0x8bf04 + +# Locations of action pointer functions for Heretic 1.0. Hand-constructed. + +ACTION_POINTERS = { + 78512 => "A_FreeTargMobj", + 82048 => "A_RestoreSpecialThing1", + 82128 => "A_RestoreSpecialThing2", + 78736 => "A_HideThing", + 78752 => "A_UnHideThing", + 81952 => "A_RestoreArtifact", + 76144 => "A_Scream", + 76784 => "A_Explode", + 76896 => "A_PodPain", + 77056 => "A_RemovePod", + 77104 => "A_MakePod", + 77728 => "A_InitKeyGizmo", + 77824 => "A_VolcanoSet", + 77856 => "A_VolcanoBlast", + 70480 => "A_BeastPuff", + 78080 => "A_VolcBallImpact", + 77520 => "A_SpawnTeleGlitter", + 77600 => "A_SpawnTeleGlitter2", + 77680 => "A_AccTeleGlitter", + 117648 => "A_Light0", + 111168 => "A_WeaponReady", + 111760 => "A_Lower", + 111920 => "A_Raise", + 112640 => "A_StaffAttackPL1", + 111696 => "A_ReFire", + 112784 => "A_StaffAttackPL2", + 111568 => "A_BeakReady", + 111856 => "A_BeakRaise", + 112272 => "A_BeakAttackPL1", + 112448 => "A_BeakAttackPL2", + 117184 => "A_GauntletAttack", + 112928 => "A_FireBlasterPL1", + 113072 => "A_FireBlasterPL2", + 115088 => "A_SpawnRippers", + 113760 => "A_FireMacePL1", + 114624 => "A_FireMacePL2", + 113904 => "A_MacePL1Check", + 114032 => "A_MaceBallImpact", + 114192 => "A_MaceBallImpact2", + 114752 => "A_DeathBallImpact", + 115568 => "A_FireSkullRodPL1", + 115648 => "A_FireSkullRodPL2", + 115776 => "A_SkullRodPL2Seek", + 115808 => "A_AddPlayerRain", + 116336 => "A_HideInCeiling", + 115984 => "A_SkullRodStorm", + 116272 => "A_RainImpact", + 113152 => "A_FireGoldWandPL1", + 113296 => "A_FireGoldWandPL2", + 116368 => "A_FirePhoenixPL1", + 116720 => "A_InitPhoenixPL2", + 116736 => "A_FirePhoenixPL2", + 117104 => "A_ShutdownPhoenixPL2", + 116496 => "A_PhoenixPuff", + 116480 => "A_RemovedPhoenixFunc", # anomaly! + 117120 => "A_FlameEnd", + 117152 => "A_FloatPuff", + 115232 => "A_FireCrossbowPL1", + 115312 => "A_FireCrossbowPL2", + 115456 => "A_BoltSpark", + 69984 => "A_Pain", + 76400 => "A_NoBlocking", + 78608 => "A_AddPlayerCorpse", + 78288 => "A_SkullPop", + 78704 => "A_FlameSnd", + 78448 => "A_CheckSkullFloor", + 78480 => "A_CheckSkullDone", + 71568 => "A_Feathers", + 71456 => "A_ChicLook", + 71488 => "A_ChicChase", + 71520 => "A_ChicPain", + 69872 => "A_FaceTarget", + 71376 => "A_ChicAttack", + 69200 => "A_Look", + 69328 => "A_Chase", + 71808 => "A_MummyAttack", + 71920 => "A_MummyAttack2", + 72048 => "A_MummySoul", + 108432 => "A_ContMobjSound", + 72016 => "A_MummyFX1Seek", + 74640 => "A_BeastAttack", + 75632 => "A_SnakeAttack", + 75712 => "A_SnakeAttack2", + 74752 => "A_HeadAttack", + 77344 => "A_BossDeath", + 75328 => "A_HeadIceImpact", + 75488 => "A_HeadFireGrow", + 75168 => "A_WhirlwindSeek", + 75792 => "A_ClinkAttack", + 75888 => "A_WizAtk1", + 75920 => "A_WizAtk2", + 75952 => "A_WizAtk3", + 75872 => "A_GhostOff", + 70592 => "A_ImpMeAttack", + 70672 => "A_ImpMsAttack", + 70880 => "A_ImpMsAttack2", + 70976 => "A_ImpDeath", + 71024 => "A_ImpXDeath1", + 71072 => "A_ImpXDeath2", + 70304 => "A_ImpExplode", + 70160 => "A_KnightAttack", + 70016 => "A_DripBlood", + 72144 => "A_Sor1Chase", + 72096 => "A_Sor1Pain", + 72192 => "A_Srcr1Attack", + 73456 => "A_SorZap", + 72480 => "A_SorcererRise", + 73488 => "A_SorRise", + 73616 => "A_SorSightSnd", + 72816 => "A_Srcr2Decide", + 72896 => "A_Srcr2Attack", + 73392 => "A_Sor2DthInit", + 73520 => "A_SorDSph", + 73424 => "A_Sor2DthLoop", + 73552 => "A_SorDExp", + 73584 => "A_SorDBon", + 73120 => "A_BlueSpark", + 73232 => "A_GenWizard", + 73648 => "A_MinotaurAtk1", + 73760 => "A_MinotaurDecide", + 74112 => "A_MinotaurAtk2", + 74352 => "A_MinotaurAtk3", + 74032 => "A_MinotaurCharge", + 74528 => "A_MntrFloorFire", + 77472 => "A_ESound", +} + +end + diff --git a/hhe/v1.2/config.rb b/hhe/v1.2/config.rb new file mode 100755 index 0000000..290321c --- /dev/null +++ b/hhe/v1.2/config.rb @@ -0,0 +1,142 @@ + +module Heretic_1_2 + +NAME="v1.2" + +NUM_STATES=1206 + +STATE_OFFSET=0x8e8b4 + +# Locations of action pointer functions for Heretic 1.2. Hand-constructed. + +ACTION_POINTERS = { + 81008 => "A_FreeTargMobj", + 84544 => "A_RestoreSpecialThing1", + 84592 => "A_RestoreSpecialThing2", + 81232 => "A_HideThing", + 81248 => "A_UnHideThing", + 84464 => "A_RestoreArtifact", + 78576 => "A_Scream", + 79248 => "A_Explode", + 79360 => "A_PodPain", + 79520 => "A_RemovePod", + 79568 => "A_MakePod", + 80192 => "A_InitKeyGizmo", + 80288 => "A_VolcanoSet", + 80320 => "A_VolcanoBlast", + 72992 => "A_BeastPuff", + 80544 => "A_VolcBallImpact", + 79984 => "A_SpawnTeleGlitter", + 80064 => "A_SpawnTeleGlitter2", + 80144 => "A_AccTeleGlitter", + 119824 => "A_Light0", + 113488 => "A_WeaponReady", + 114080 => "A_Lower", + 114240 => "A_Raise", + 114848 => "A_StaffAttackPL1", + 114016 => "A_ReFire", + 114992 => "A_StaffAttackPL2", + 113888 => "A_BeakReady", + 114176 => "A_BeakRaise", + 114480 => "A_BeakAttackPL1", + 114656 => "A_BeakAttackPL2", + 119344 => "A_GauntletAttack", + 115136 => "A_FireBlasterPL1", + 115280 => "A_FireBlasterPL2", + 117280 => "A_SpawnRippers", + 115968 => "A_FireMacePL1", + 116816 => "A_FireMacePL2", + 116112 => "A_MacePL1Check", + 116224 => "A_MaceBallImpact", + 116384 => "A_MaceBallImpact2", + 116944 => "A_DeathBallImpact", + 117760 => "A_FireSkullRodPL1", + 117840 => "A_FireSkullRodPL2", + 117968 => "A_SkullRodPL2Seek", + 118000 => "A_AddPlayerRain", + 118512 => "A_HideInCeiling", + 118176 => "A_SkullRodStorm", + 118448 => "A_RainImpact", + 115360 => "A_FireGoldWandPL1", + 115504 => "A_FireGoldWandPL2", + 118544 => "A_FirePhoenixPL1", + 118880 => "A_InitPhoenixPL2", + 118896 => "A_FirePhoenixPL2", + 119264 => "A_ShutdownPhoenixPL2", + 118656 => "A_PhoenixPuff", + #0000 => "A_RemovedPhoenixFunc", # anomaly! + 119280 => "A_FlameEnd", + 119312 => "A_FloatPuff", + 117424 => "A_FireCrossbowPL1", + 117504 => "A_FireCrossbowPL2", + 117648 => "A_BoltSpark", + 72496 => "A_Pain", + 78832 => "A_NoBlocking", + 81104 => "A_AddPlayerCorpse", + 80752 => "A_SkullPop", + 81200 => "A_FlameSnd", + 80976 => "A_CheckBurnGone", + 80912 => "A_CheckSkullFloor", + 80944 => "A_CheckSkullDone", + 74080 => "A_Feathers", + 73968 => "A_ChicLook", + 74000 => "A_ChicChase", + 74032 => "A_ChicPain", + 72400 => "A_FaceTarget", + 73888 => "A_ChicAttack", + 71728 => "A_Look", + 71856 => "A_Chase", + 74288 => "A_MummyAttack", + 74400 => "A_MummyAttack2", + 74528 => "A_MummySoul", + 110816 => "A_ContMobjSound", + 74496 => "A_MummyFX1Seek", + 77120 => "A_BeastAttack", + 78048 => "A_SnakeAttack", + 78128 => "A_SnakeAttack2", + 77232 => "A_HeadAttack", + 79808 => "A_BossDeath", + 77824 => "A_HeadIceImpact", + 77984 => "A_HeadFireGrow", + 77664 => "A_WhirlwindSeek", + 78208 => "A_ClinkAttack", + 78320 => "A_WizAtk1", + 78352 => "A_WizAtk2", + 78384 => "A_WizAtk3", + 78304 => "A_GhostOff", + 73104 => "A_ImpMeAttack", + 73184 => "A_ImpMsAttack", + 73392 => "A_ImpMsAttack2", + 73488 => "A_ImpDeath", + 73536 => "A_ImpXDeath1", + 73584 => "A_ImpXDeath2", + 72816 => "A_ImpExplode", + 72672 => "A_KnightAttack", + 72528 => "A_DripBlood", + 74624 => "A_Sor1Chase", + 74576 => "A_Sor1Pain", + 74672 => "A_Srcr1Attack", + 75936 => "A_SorZap", + 74960 => "A_SorcererRise", + 75968 => "A_SorRise", + 76096 => "A_SorSightSnd", + 75296 => "A_Srcr2Decide", + 75376 => "A_Srcr2Attack", + 75872 => "A_Sor2DthInit", + 76000 => "A_SorDSph", + 75904 => "A_Sor2DthLoop", + 76032 => "A_SorDExp", + 76064 => "A_SorDBon", + 75600 => "A_BlueSpark", + 75712 => "A_GenWizard", + 76128 => "A_MinotaurAtk1", + 76240 => "A_MinotaurDecide", + 76592 => "A_MinotaurAtk2", + 76832 => "A_MinotaurAtk3", + 76512 => "A_MinotaurCharge", + 77008 => "A_MntrFloorFire", + 79936 => "A_ESound", +} + +end + diff --git a/hhe/v1.3/config.rb b/hhe/v1.3/config.rb new file mode 100755 index 0000000..97a8126 --- /dev/null +++ b/hhe/v1.3/config.rb @@ -0,0 +1,142 @@ + +module Heretic_1_3 + +NAME="v1.3" + +NUM_STATES=1206 + +STATE_OFFSET=0x8e8b4 + +# Action pointers for Heretic 1.3. + +ACTION_POINTERS = { + 81072 => "A_FreeTargMobj", + 84608 => "A_RestoreSpecialThing1", + 84656 => "A_RestoreSpecialThing2", + 81296 => "A_HideThing", + 81312 => "A_UnHideThing", + 84528 => "A_RestoreArtifact", + 78640 => "A_Scream", + 79312 => "A_Explode", + 79424 => "A_PodPain", + 79584 => "A_RemovePod", + 79632 => "A_MakePod", + 80256 => "A_InitKeyGizmo", + 80352 => "A_VolcanoSet", + 80384 => "A_VolcanoBlast", + 73056 => "A_BeastPuff", + 80608 => "A_VolcBallImpact", + 80048 => "A_SpawnTeleGlitter", + 80128 => "A_SpawnTeleGlitter2", + 80208 => "A_AccTeleGlitter", + 120064 => "A_Light0", + 113728 => "A_WeaponReady", + 114320 => "A_Lower", + 114480 => "A_Raise", + 115088 => "A_StaffAttackPL1", + 114256 => "A_ReFire", + 115232 => "A_StaffAttackPL2", + 114128 => "A_BeakReady", + 114416 => "A_BeakRaise", + 114720 => "A_BeakAttackPL1", + 114896 => "A_BeakAttackPL2", + 119584 => "A_GauntletAttack", + 115376 => "A_FireBlasterPL1", + 115520 => "A_FireBlasterPL2", + 117520 => "A_SpawnRippers", + 116208 => "A_FireMacePL1", + 117056 => "A_FireMacePL2", + 116352 => "A_MacePL1Check", + 116464 => "A_MaceBallImpact", + 116624 => "A_MaceBallImpact2", + 117184 => "A_DeathBallImpact", + 118000 => "A_FireSkullRodPL1", + 118080 => "A_FireSkullRodPL2", + 118208 => "A_SkullRodPL2Seek", + 118240 => "A_AddPlayerRain", + 118752 => "A_HideInCeiling", + 118416 => "A_SkullRodStorm", + 118688 => "A_RainImpact", + 115600 => "A_FireGoldWandPL1", + 115744 => "A_FireGoldWandPL2", + 118784 => "A_FirePhoenixPL1", + 119120 => "A_InitPhoenixPL2", + 119136 => "A_FirePhoenixPL2", + 119504 => "A_ShutdownPhoenixPL2", + 118896 => "A_PhoenixPuff", + #0000 => "A_RemovedPhoenixFunc", # anomaly! + 119520 => "A_FlameEnd", + 119552 => "A_FloatPuff", + 117664 => "A_FireCrossbowPL1", + 117744 => "A_FireCrossbowPL2", + 117888 => "A_BoltSpark", + 72560 => "A_Pain", + 78896 => "A_NoBlocking", + 81168 => "A_AddPlayerCorpse", + 80816 => "A_SkullPop", + 81264 => "A_FlameSnd", + 81040 => "A_CheckBurnGone", + 80976 => "A_CheckSkullFloor", + 81008 => "A_CheckSkullDone", + 74144 => "A_Feathers", + 74032 => "A_ChicLook", + 74064 => "A_ChicChase", + 74096 => "A_ChicPain", + 72464 => "A_FaceTarget", + 73952 => "A_ChicAttack", + 71792 => "A_Look", + 71920 => "A_Chase", + 74352 => "A_MummyAttack", + 74464 => "A_MummyAttack2", + 74592 => "A_MummySoul", + 111056 => "A_ContMobjSound", + 74560 => "A_MummyFX1Seek", + 77184 => "A_BeastAttack", + 78112 => "A_SnakeAttack", + 78192 => "A_SnakeAttack2", + 77296 => "A_HeadAttack", + 79872 => "A_BossDeath", + 77888 => "A_HeadIceImpact", + 78048 => "A_HeadFireGrow", + 77728 => "A_WhirlwindSeek", + 78272 => "A_ClinkAttack", + 78384 => "A_WizAtk1", + 78416 => "A_WizAtk2", + 78448 => "A_WizAtk3", + 78368 => "A_GhostOff", + 73168 => "A_ImpMeAttack", + 73248 => "A_ImpMsAttack", + 73456 => "A_ImpMsAttack2", + 73552 => "A_ImpDeath", + 73600 => "A_ImpXDeath1", + 73648 => "A_ImpXDeath2", + 72880 => "A_ImpExplode", + 72736 => "A_KnightAttack", + 72592 => "A_DripBlood", + 74688 => "A_Sor1Chase", + 74640 => "A_Sor1Pain", + 74736 => "A_Srcr1Attack", + 76000 => "A_SorZap", + 75024 => "A_SorcererRise", + 76032 => "A_SorRise", + 76160 => "A_SorSightSnd", + 75360 => "A_Srcr2Decide", + 75440 => "A_Srcr2Attack", + 75936 => "A_Sor2DthInit", + 76064 => "A_SorDSph", + 75968 => "A_Sor2DthLoop", + 76096 => "A_SorDExp", + 76128 => "A_SorDBon", + 75664 => "A_BlueSpark", + 75776 => "A_GenWizard", + 76192 => "A_MinotaurAtk1", + 76304 => "A_MinotaurDecide", + 76656 => "A_MinotaurAtk2", + 76896 => "A_MinotaurAtk3", + 76576 => "A_MinotaurCharge", + 77072 => "A_MntrFloorFire", + 80000 => "A_ESound", +} + +end +