From 56412813c70ba44a6f6a74cee5bf460ca6a31402 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Mon, 8 Feb 2010 21:14:30 +0000 Subject: Add Heretic implementation of HHE "Text" section, add DEH_String() around appropriate strings to allow string replacements. Subversion-branch: /branches/raven-branch Subversion-revision: 1867 --- src/heretic/deh_htext.c | 903 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 903 insertions(+) create mode 100644 src/heretic/deh_htext.c (limited to 'src/heretic/deh_htext.c') diff --git a/src/heretic/deh_htext.c b/src/heretic/deh_htext.c new file mode 100644 index 00000000..9075e610 --- /dev/null +++ b/src/heretic/deh_htext.c @@ -0,0 +1,903 @@ +// Emacs style mode select -*- C++ -*- +//----------------------------------------------------------------------------- +// +// Copyright(C) 2005-2010 Simon Howard +// +// 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. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +// 02111-1307, USA. +// +//----------------------------------------------------------------------------- +// +// Parses Text substitution sections in dehacked files +// +//----------------------------------------------------------------------------- + +#include +#include + +#include "doomtype.h" +#include "dstrings.h" + +#include "z_zone.h" + +#include "deh_defs.h" +#include "deh_io.h" +#include "deh_main.h" + +// +// Ok, Greg, the action pointers thing was bad enough, but this really +// takes the biscuit. Why does HHE's text replacement address strings +// by offset??!! The dehacked way was much nicer, why change it? +// +// Anyway, this is the Heretic 1.0 string table, which can be seen in +// HHE. This is the string and its offset from the start of the +// text section. Not all the strings are here; this is a redacted list +// that contains just the strings we support. +// + +static const struct +{ + unsigned int offset; + char *string; +} +string_table[] = +{ + { 0, NULL }, + { 4, NULL }, + { 64, NULL }, + { 104, NULL }, + { 160, NULL }, + { 200, NULL }, + { 220, NULL }, + { 228, "PLAYPAL" }, + { 236, NULL }, + { 244, NULL }, + { 252, NULL }, + { 272, NULL }, + { 288, NULL }, + { 296, NULL }, + { 316, NULL }, + { 332, NULL }, + { 372, NULL }, + { 436, NULL }, + { 504, NULL }, + { 536, NULL }, + { 544, NULL }, + { 560, NULL }, + { 576, NULL }, + { 584, "ENDTEXT" }, + { 592, NULL }, + { 612, NULL }, + { 640, NULL }, + { 664, NULL }, + { 712, NULL }, + { 744, NULL }, + { 764, NULL }, + { 808, NULL }, + { 820, NULL }, + { 828, NULL }, + { 840, NULL }, + { 876, NULL }, + { 884, NULL }, + { 908, NULL }, + { 952, NULL }, + { 992, NULL }, + { 1028, NULL }, + { 1036, NULL }, + { 1048, NULL }, + { 1088, NULL }, + { 1128, NULL }, + { 1160, NULL }, + { 1192, NULL }, + { 1212, NULL }, + { 1240, "E1M1: THE DOCKS" }, + { 1260, "E1M2: THE DUNGEONS" }, + { 1280, "E1M3: THE GATEHOUSE" }, + { 1304, "E1M4: THE GUARD TOWER" }, + { 1328, "E1M5: THE CITADEL" }, + { 1348, "E1M6: THE CATHEDRAL" }, + { 1372, "E1M7: THE CRYPTS" }, + { 1392, "E1M8: HELL'S MAW" }, + { 1412, "E1M9: THE GRAVEYARD" }, + { 1436, "E2M1: THE CRATER" }, + { 1456, "E2M2: THE LAVA PITS" }, + { 1480, "E2M3: THE RIVER OF FIRE" }, + { 1508, "E2M4: THE ICE GROTTO" }, + { 1532, "E2M5: THE CATACOMBS" }, + { 1556, "E2M6: THE LABYRINTH" }, + { 1580, "E2M7: THE GREAT HALL" }, + { 1604, "E2M8: THE PORTALS OF CHAOS" }, + { 1632, "E2M9: THE GLACIER" }, + { 1652, "E3M1: THE STOREHOUSE" }, + { 1676, "E3M2: THE CESSPOOL" }, + { 1696, "E3M3: THE CONFLUENCE" }, + { 1720, "E3M4: THE AZURE FORTRESS" }, + { 1748, "E3M5: THE OPHIDIAN LAIR" }, + { 1776, "E3M6: THE HALLS OF FEAR" }, + { 1804, "E3M7: THE CHASM" }, + { 1824, "E3M8: D'SPARIL'S KEEP" }, + { 1848, "E3M9: THE AQUIFER" }, + { 1868, "AUTOPAGE" }, + { 1880, "FOLLOW MODE ON" }, + { 1896, "FOLLOW MODE OFF" }, + { 1912, "GREEN: " }, + { 1936, "YELLOW: " }, + { 1948, "RED: " }, + { 1956, "BLUE: " }, + { 1964, "FONTA_S" }, + { 1972, "-MESSAGE SENT-" }, + { 1988, "THERE ARE NO OTHER PLAYERS IN THE GAME!" }, + { 2028, "FONTA59" }, + { 2036, "PAUSED" }, + { 2044, NULL }, + { 2056, NULL }, + { 2072, "ADVISOR" }, + { 2080, "TITLE" }, + { 2088, "demo1" }, + { 2096, "CREDIT" }, + { 2104, "demo2" }, + { 2112, "ORDER" }, + { 2120, "demo3" }, + { 2128, NULL }, + { 2140, NULL }, + { 2168, "hticsav%c.hsg" }, + { 2184, "heretic.wad" }, + { 2196, NULL }, + { 2212, NULL }, + { 2228, NULL }, + { 2240, "heretic.cfg" }, + { 2252, NULL }, + { 2264, NULL }, + { 2284, NULL }, + { 2304, "Exited from HERETIC.\n" }, + { 2328, NULL }, + { 2340, NULL }, + { 2352, NULL }, + { 2364, NULL }, + { 2372, NULL }, + { 2388, NULL }, + { 2404, NULL }, + { 2412, "c:\\heretic.cd" }, + { 2428, NULL }, + { 2436, NULL }, + { 2444, NULL }, + { 2464, NULL }, + { 2496, NULL }, + { 2508, NULL }, + { 2520, NULL }, + { 2528, "Playing demo %s.lmp.\n" }, + { 2552, NULL }, + { 2564, NULL }, + { 2572, NULL }, + { 2584, NULL }, + { 2592, "V_Init: allocate screens.\n" }, + { 2620, "M_LoadDefaults: Load system defaults.\n" }, + { 2660, "Z_Init: Init zone memory allocation daemon.\n" }, + { 2708, "W_Init: Init WADfiles.\n" }, + { 2732, "E2M1" }, + { 2740, "LOADING" }, + { 2748, "DeathMatch..." }, + { 2764, "No Monsters..." }, + { 2780, "Respawning..." }, + { 2796, "Warp to Episode %d, Map %d, Skill %d " }, + { 2836, "MN_Init: Init menu system.\n" }, + { 2864, "R_Init: Init Heretic refresh daemon." }, + { 2904, "Loading graphics" }, + { 2924, "P_Init: Init Playloop state." }, + { 2956, "Init game engine." }, + { 2976, "I_Init: Setting up machine state.\n" }, + { 3012, "D_CheckNetGame: Checking network game status.\n" }, + { 3060, "Checking network game status." }, + { 3092, "SB_Init: Loading patches.\n" }, + { 3120, NULL }, + { 3128, NULL }, + { 3140, NULL }, + { 3184, NULL }, + { 3220, NULL }, + { 3256, NULL }, + { 3280, NULL }, + { 3304, NULL }, + { 3320, NULL }, + { 3352, "PLAYER 1 HAS LEFT THE GAME" }, + { 3380, NULL }, + { 3432, NULL }, + { 3464, NULL }, + { 3508, NULL }, + { 3548, NULL }, + { 3600, NULL }, + { 3624, NULL }, + { 3664, NULL }, + { 3696, NULL }, + { 3736, "NET GAME" }, + { 3748, "SAVE GAME" }, + { 3760, "Only %i deathmatch spots, 4 required" }, + { 3800, "version %i" }, + { 3812, NULL }, + { 3828, NULL }, + { 3856, NULL }, + { 3872, NULL }, + { 3896, "GAME SAVED" }, + { 3908, "SKY1" }, + { 3916, "SKY2" }, + { 3924, "SKY3" }, + { 3932, NULL }, + { 3940, NULL }, + { 3976, NULL }, + { 3996, NULL }, + { 4016, E1TEXT }, + { 4536, E2TEXT }, + { 5068, E3TEXT }, + { 5632, "FLOOR25" }, + { 5640, "FLATHUH1" }, + { 5652, "FLTWAWA2" }, + { 5664, "FONTA_S" }, + { 5672, "FINAL1" }, + { 5680, "FINAL2" }, + { 5688, "E2PAL" }, + { 5696, "E2END" }, + { 5704, "PLAYPAL" }, + { 5712, "ORDER" }, + { 5720, "IMPX" }, + { 5728, "ACLO" }, + { 5736, "PTN1" }, + { 5744, "SHLD" }, + { 5752, "SHD2" }, + { 5760, "BAGH" }, + { 5768, "SPMP" }, + { 5776, "INVS" }, + { 5784, "PTN2" }, + { 5792, "SOAR" }, + { 5800, "INVU" }, + { 5808, "PWBK" }, + { 5816, "EGGC" }, + { 5824, "EGGM" }, + { 5832, "FX01" }, + { 5840, "SPHL" }, + { 5848, "TRCH" }, + { 5856, "FBMB" }, + { 5864, "XPL1" }, + { 5872, "ATLP" }, + { 5880, "PPOD" }, + { 5888, "AMG1" }, + { 5896, "SPSH" }, + { 5904, "LVAS" }, + { 5912, "SLDG" }, + { 5920, "SKH1" }, + { 5928, "SKH2" }, + { 5936, "SKH3" }, + { 5944, "SKH4" }, + { 5952, "CHDL" }, + { 5960, "SRTC" }, + { 5968, "SMPL" }, + { 5976, "STGS" }, + { 5984, "STGL" }, + { 5992, "STCS" }, + { 6000, "STCL" }, + { 6008, "KFR1" }, + { 6016, "BARL" }, + { 6024, "BRPL" }, + { 6032, "MOS1" }, + { 6040, "MOS2" }, + { 6048, "WTRH" }, + { 6056, "HCOR" }, + { 6064, "KGZ1" }, + { 6072, "KGZB" }, + { 6080, "KGZG" }, + { 6088, "KGZY" }, + { 6096, "VLCO" }, + { 6104, "VFBL" }, + { 6112, "VTFB" }, + { 6120, "SFFI" }, + { 6128, "TGLT" }, + { 6136, "TELE" }, + { 6144, "STFF" }, + { 6152, "PUF3" }, + { 6160, "PUF4" }, + { 6168, "BEAK" }, + { 6176, "WGNT" }, + { 6184, "GAUN" }, + { 6192, "PUF1" }, + { 6200, "WBLS" }, + { 6208, "BLSR" }, + { 6216, "FX18" }, + { 6224, "FX17" }, + { 6232, "WMCE" }, + { 6240, "MACE" }, + { 6248, "FX02" }, + { 6256, "WSKL" }, + { 6264, "HROD" }, + { 6272, "FX00" }, + { 6280, "FX20" }, + { 6288, "FX21" }, + { 6296, "FX22" }, + { 6304, "FX23" }, + { 6312, "GWND" }, + { 6320, "PUF2" }, + { 6328, "WPHX" }, + { 6336, "PHNX" }, + { 6344, "FX04" }, + { 6352, "FX08" }, + { 6360, "FX09" }, + { 6368, "WBOW" }, + { 6376, "CRBW" }, + { 6384, "FX03" }, + { 6392, "BLOD" }, + { 6400, "PLAY" }, + { 6408, "FDTH" }, + { 6416, "BSKL" }, + { 6424, "CHKN" }, + { 6432, "MUMM" }, + { 6440, "FX15" }, + { 6448, "BEAS" }, + { 6456, "FRB1" }, + { 6464, "SNKE" }, + { 6472, "SNFX" }, + { 6480, "HEAD" }, + { 6488, "FX05" }, + { 6496, "FX06" }, + { 6504, "FX07" }, + { 6512, "CLNK" }, + { 6520, "WZRD" }, + { 6528, "FX11" }, + { 6536, "FX10" }, + { 6544, "KNIG" }, + { 6552, "SPAX" }, + { 6560, "RAXE" }, + { 6568, "SRCR" }, + { 6576, "FX14" }, + { 6584, "SOR2" }, + { 6592, "SDTH" }, + { 6600, "FX16" }, + { 6608, "MNTR" }, + { 6616, "FX12" }, + { 6624, "FX13" }, + { 6632, "AKYY" }, + { 6640, "BKYY" }, + { 6648, "CKYY" }, + { 6656, "AMG2" }, + { 6664, "AMM1" }, + { 6672, "AMM2" }, + { 6680, "AMC1" }, + { 6688, "AMC2" }, + { 6696, "AMS1" }, + { 6704, "AMS2" }, + { 6712, "AMP1" }, + { 6720, "AMP2" }, + { 6728, "AMB1" }, + { 6736, "AMB2" }, + { 6768, "PLAYPAL" }, + { 6776, "MAPE1" }, + { 6784, "MAPE2" }, + { 6792, "MAPE3" }, + { 6800, "IN_X" }, + { 6808, "IN_YAH" }, + { 6816, "FONTB16" }, + { 6824, "FONTB_S" }, + { 6832, "FONTB13" }, + { 6840, "FONTB15" }, + { 6848, "FONTB05" }, + { 6856, "FACEA0" }, + { 6864, "FACEB0" }, + { 6872, NULL }, + { 6896, NULL }, + { 6940, "FLOOR16" }, + { 6948, "FINISHED" }, + { 6960, "NOW ENTERING:" }, + { 6976, "KILLS" }, + { 6984, "ITEMS" }, + { 6992, "SECRETS" }, + { 7000, "TIME" }, + { 7008, "BONUS" }, + { 7016, "SECRET" }, + { 7024, "TOTAL" }, + { 7032, "VICTIMS" }, + { 7044, "NEW GAME" }, + { 7056, "OPTIONS" }, + { 7064, "GAME FILES" }, + { 7076, "INFO" }, + { 7084, "QUIT GAME" }, + { 7096, "CITY OF THE DAMNED" }, + { 7116, "HELL'S MAW" }, + { 7128, "THE DOME OF D'SPARIL" }, + { 7152, "LOAD GAME" }, + { 7164, "SAVE GAME" }, + { 7176, "THOU NEEDETH A WET-NURSE" }, + { 7204, "YELLOWBELLIES-R-US" }, + { 7224, "BRINGEST THEM ONETH" }, + { 7244, "THOU ART A SMITE-MEISTER" }, + { 7272, "BLACK PLAGUE POSSESSES THEE" }, + { 7300, "END GAME" }, + { 7312, "MESSAGES : " }, + { 7324, "MOUSE SENSITIVITY" }, + { 7344, "MORE..." }, + { 7352, "SCREEN SIZE" }, + { 7364, "SFX VOLUME" }, + { 7376, "MUSIC VOLUME" }, + { 7392, "M_SKL00" }, + { 7400, "FONTA_S" }, + { 7408, "FONTB_S" }, + { 7416, "ARE YOU SURE YOU WANT TO QUIT?" }, + { 7448, "ARE YOU SURE YOU WANT TO END THE GAME?" }, + { 7488, "DO YOU WANT TO QUICKSAVE THE GAME NAMED" }, + { 7528, "DO YOU WANT TO QUICKLOAD THE GAME NAMED" }, + { 7572, "M_SLCTR1" }, + { 7584, "M_SLCTR2" }, + { 7596, "M_HTIC" }, + { 7604, NULL }, + { 7632, "hticsav%d.hsg" }, + { 7652, "M_FSLOT" }, + { 7668, "MESSAGES ON" }, + { 7680, "MESSAGES OFF" }, + { 7696, "YOU CAN'T START A NEW GAME FROM WITHIN A NETGAME!" }, + { 7748, "ONLY AVAILABLE IN THE REGISTERED VERSION" }, + { 7792, "PLAYPAL" }, + { 7800, "QUICKSAVING...." }, + { 7816, "QUICKLOADING...." }, + { 7836, "CHOOSE A QUICKSAVE SLOT" }, + { 7860, "CHOOSE A QUICKLOAD SLOT" }, + { 7884, "TITLE" }, + { 7892, "M_SLDLT" }, + { 7900, "M_SLDMD1" }, + { 7912, "M_SLDMD2" }, + { 7924, "M_SLDRT" }, + { 7932, "M_SLDKB" }, + { 7940, NULL }, + { 7968, NULL }, + { 7992, NULL }, + { 8020, NULL }, + { 8028, NULL }, + { 8056, NULL }, + { 8076, NULL }, + { 8088, NULL }, + { 8104, NULL }, + { 8116, NULL }, + { 8128, NULL }, + { 8136, NULL }, + { 8148, NULL }, + { 8164, NULL }, + { 8180, NULL }, + { 8192, NULL }, + { 8204, NULL }, + { 8220, NULL }, + { 8232, NULL }, + { 8248, NULL }, + { 8264, NULL }, + { 8276, NULL }, + { 8292, NULL }, + { 8308, NULL }, + { 8320, NULL }, + { 8328, NULL }, + { 8340, NULL }, + { 8352, NULL }, + { 8364, NULL }, + { 8376, NULL }, + { 8392, NULL }, + { 8408, NULL }, + { 8424, NULL }, + { 8436, NULL }, + { 8448, NULL }, + { 8460, NULL }, + { 8472, NULL }, + { 8488, NULL }, + { 8504, NULL }, + { 8520, NULL }, + { 8536, NULL }, + { 8548, NULL }, + { 8560, NULL }, + { 8572, NULL }, + { 8584, NULL }, + { 8596, NULL }, + { 8612, NULL }, + { 8624, NULL }, + { 8648, NULL }, + { 8660, NULL }, + { 8668, NULL }, + { 8680, NULL }, + { 8708, NULL }, + { 8720, NULL }, + { 8728, NULL }, + { 8740, NULL }, + { 8752, NULL }, + { 8764, NULL }, + { 8788, NULL }, + { 8800, NULL }, + { 8812, NULL }, + { 8824, NULL }, + { 8848, NULL }, + { 8880, NULL }, + { 8888, NULL }, + { 8896, NULL }, + { 8916, NULL }, + { 8968, "HRTIC00.pcx" }, + { 8980, NULL }, + { 9016, "SCREEN SHOT" }, + { 9028, "YOU NEED A BLUE KEY TO OPEN THIS DOOR" }, + { 9068, "YOU NEED A YELLOW KEY TO OPEN THIS DOOR" }, + { 9108, "YOU NEED A GREEN KEY TO OPEN THIS DOOR" }, + { 9148, NULL }, + { 9172, NULL }, + { 9220, NULL }, + { 9244, "CRYSTAL VIAL" }, + { 9260, "SILVER SHIELD" }, + { 9276, "ENCHANTED SHIELD" }, + { 9296, "BAG OF HOLDING" }, + { 9312, "MAP SCROLL" }, + { 9324, "BLUE KEY" }, + { 9336, "YELLOW KEY" }, + { 9348, "GREEN KEY" }, + { 9360, "QUARTZ FLASK" }, + { 9376, "WINGS OF WRATH" }, + { 9392, "RING OF INVINCIBILITY" }, + { 9416, "TOME OF POWER" }, + { 9432, "SHADOWSPHERE" }, + { 9448, "MORPH OVUM" }, + { 9460, "MYSTIC URN" }, + { 9472, "TORCH" }, + { 9480, "TIME BOMB OF THE ANCIENTS" }, + { 9508, "CHAOS DEVICE" }, + { 9524, "WAND CRYSTAL" }, + { 9540, "CRYSTAL GEODE" }, + { 9556, "MACE SPHERES" }, + { 9572, "PILE OF MACE SPHERES" }, + { 9596, "ETHEREAL ARROWS" }, + { 9612, "QUIVER OF ETHEREAL ARROWS" }, + { 9640, "CLAW ORB" }, + { 9652, "ENERGY ORB" }, + { 9664, "LESSER RUNES" }, + { 9680, "GREATER RUNES" }, + { 9696, "FLAME ORB" }, + { 9708, "INFERNO ORB" }, + { 9720, "FIREMACE" }, + { 9732, "ETHEREAL CROSSBOW" }, + { 9752, "DRAGON CLAW" }, + { 9764, "HELLSTAFF" }, + { 9776, "PHOENIX ROD" }, + { 9788, "GAUNTLETS OF THE NECROMANCER" }, + { 9820, NULL }, + { 9860, NULL }, + { 9892, NULL }, + { 9940, NULL }, + { 9972, NULL }, + { 10012, NULL }, + { 10052, NULL }, + { 10080, NULL }, + { 10088, "FLTWAWA1" }, + { 10100, "FLTFLWW1" }, + { 10112, "FLTLAVA1" }, + { 10124, "FLATHUH1" }, + { 10136, "FLTSLUD1" }, + { 10152, NULL }, + { 10192, NULL }, + { 10236, NULL }, + { 10248, NULL }, + { 10284, NULL }, + { 10320, NULL }, + { 10360, NULL }, + { 10392, NULL }, + { 10444, "PLAYPAL" }, + { 10452, NULL }, + { 10488, NULL }, + { 10508, NULL }, + { 10556, NULL }, + { 10596, "PNAMES" }, + { 10604, "TEXTURE1" }, + { 10616, "TEXTURE2" }, + { 10628, "S_END" }, + { 10636, "S_START" }, + { 10644, NULL }, + { 10684, NULL }, + { 10728, "F_START" }, + { 10736, "F_END" }, + { 10744, "COLORMAP" }, + { 10756, "\nR_InitTextures " }, + { 10776, "R_InitFlats\n" }, + { 10792, "R_InitSpriteLumps " }, + { 10812, NULL }, + { 10844, NULL }, + { 10880, NULL }, + { 10912, NULL }, + { 10948, "TINTTAB" }, + { 10956, NULL }, + { 10984, "FLOOR04" }, + { 10992, "FLAT513" }, + { 11000, "bordt" }, + { 11008, "bordb" }, + { 11016, "bordl" }, + { 11024, "bordr" }, + { 11032, "bordtl" }, + { 11040, "bordtr" }, + { 11048, "bordbr" }, + { 11056, "bordbl" }, + { 11064, "R_InitData " }, + { 11076, "R_InitPointToAngle\n" }, + { 11096, "R_InitTables " }, + { 11112, "R_InitPlanes\n" }, + { 11128, "R_InitLightTables " }, + { 11148, "R_InitSkyMap\n" }, + { 11164, "F_SKY1" }, + { 11172, NULL }, + { 11200, NULL }, + { 11232, NULL }, + { 11272, NULL }, + { 11312, NULL }, + { 11348, NULL }, + { 11380, NULL }, + { 11404, NULL }, + { 11436, NULL }, + { 11492, NULL }, + { 11548, NULL }, + { 11616, NULL }, + { 11684, NULL }, + { 11748, NULL }, + { 11792, NULL }, + { 11840, NULL }, + { 11896, NULL }, + { 11936, NULL }, + { 11980, NULL }, + { 12028, NULL }, + { 12072, NULL }, + { 12120, "LTFACE" }, + { 12128, "RTFACE" }, + { 12136, "BARBACK" }, + { 12144, "INVBAR" }, + { 12152, "CHAIN" }, + { 12160, "STATBAR" }, + { 12168, "LIFEBAR" }, + { 12176, "LIFEGEM2" }, + { 12188, "LIFEGEM0" }, + { 12200, "LTFCTOP" }, + { 12208, "RTFCTOP" }, + { 12216, "ARTIBOX" }, + { 12224, "SELECTBOX" }, + { 12236, "INVGEML1" }, + { 12248, "INVGEML2" }, + { 12260, "INVGEMR1" }, + { 12272, "INVGEMR2" }, + { 12284, "BLACKSQ" }, + { 12292, "ARMCLEAR" }, + { 12304, "CHAINBACK" }, + { 12320, "NEGNUM" }, + { 12328, "FONTB16" }, + { 12336, "SMALLIN0" }, + { 12348, "PLAYPAL" }, + { 12356, "SPINBK0" }, + { 12364, "SPFLY0" }, + { 12372, "LAME" }, + { 12408, "NAME" }, + { 12416, "MO.T" }, + { 12424, "MO.X" }, + { 12432, "MO.Y" }, + { 12448, "DIST" }, + { 12456, "------" }, + { 12472, "GOD1" }, + { 12480, "GOD2" }, + { 12488, "useartia" }, + { 12500, "ykeyicon" }, + { 12512, "gkeyicon" }, + { 12524, "bkeyicon" }, + { 12536, "GOD MODE ON" }, + { 12548, "GOD MODE OFF" }, + { 12564, "NO CLIPPING ON" }, + { 12580, "NO CLIPPING OFF" }, + { 12596, "ALL WEAPONS" }, + { 12608, "POWER OFF" }, + { 12620, "POWER ON" }, + { 12632, "FULL HEALTH" }, + { 12644, "ALL KEYS" }, + { 12656, "SOUND DEBUG ON" }, + { 12672, "SOUND DEBUG OFF" }, + { 12688, "TICKER ON" }, + { 12700, "TICKER OFF" }, + { 12712, "CHOOSE AN ARTIFACT ( A - J )" }, + { 12744, "HOW MANY ( 1 - 9 )" }, + { 12764, "YOU GOT IT" }, + { 12776, "BAD INPUT" }, + { 12788, "LEVEL WARP" }, + { 12800, "CHICKEN OFF" }, + { 12812, "CHICKEN ON" }, + { 12824, "MASSACRE" }, + { 12836, "CHEATER - YOU DON'T DESERVE WEAPONS" }, + { 12872, "TRYING TO CHEAT, EH? NOW YOU DIE!" }, + { 12908, "Bad V_DrawPatch" }, + { 12924, NULL }, + { 12960, NULL }, + { 12968, NULL }, + { 12976, NULL }, + { 13020, NULL }, + { 13048, NULL }, + { 13076, NULL }, + { 13104, NULL }, + { 13136, NULL }, + { 13168, NULL }, + { 13196, NULL }, + { 13240, NULL }, + { 13272, NULL }, + { 13296, NULL }, + { 13312, NULL }, + { 13324, NULL }, + { 13364, NULL }, + { 13408, NULL }, + { 13460, NULL }, + { 13492, NULL }, + { 13516, NULL }, + { 13560, NULL }, + { 13612, NULL }, + { 13664, NULL }, + { 13700, NULL }, + { 13744, NULL }, + { 13796, NULL }, + { 13848, NULL }, + { 13884, NULL }, + { 13940, NULL }, + { 13996, NULL }, + { 14040, NULL }, + { 14084, NULL }, + { 14140, NULL }, + { 14148, NULL }, + { 14164, NULL }, + { 14184, NULL }, + { 14192, NULL }, + { 14212, NULL }, + { 14256, NULL }, + { 14272, NULL }, + { 14284, NULL }, + { 14300, NULL }, + { 14312, NULL }, + { 14324, NULL }, + { 14348, NULL }, + { 14360, NULL }, + { 14372, NULL }, + { 14380, NULL }, + { 14392, NULL }, + { 14432, NULL }, + { 14444, NULL }, + { 14472, NULL }, + { 14496, NULL }, + { 14516, NULL }, + { 14536, NULL }, + { 14548, NULL }, + { 14560, NULL }, + { 14572, NULL }, + { 14580, NULL }, + { 14588, NULL }, + { 14596, NULL }, + { 14604, NULL }, + { 14612, NULL }, + { 14620, NULL }, + { 14636, NULL }, + { 14660, NULL }, + { 14704, NULL }, + { 14748, NULL }, + { 14760, NULL }, + { 14768, NULL }, +}; + +static boolean GetStringByOffset(unsigned int offset, char **result) +{ + int i; + + for (i=0; i MaxStringLength(strlen(orig_text))) + { + DEH_Error(context, "Replacement string is longer than the maximum " + "possible in heretic.exe"); + } + else + { + // Success. + + DEH_AddStringReplacement(orig_text, repl_text); + + return NULL; + } + + // Failure. + + Z_Free(repl_text); + + return NULL; +} + +static void DEH_TextParseLine(deh_context_t *context, char *line, void *tag) +{ + // not used +} + +deh_section_t deh_section_heretic_text = +{ + "Text", + NULL, + DEH_TextStart, + DEH_TextParseLine, + NULL, + NULL, +}; + -- cgit v1.2.3