Some stuff for custom map support (store/revive toggling, documentation for various functions, etc.).

A couple tiny fixes here and there for issues I didn't notice until I loaded the mod into UDB.
This commit is contained in:
Mari the Deer 2022-09-11 12:00:20 +02:00
commit 5243d533b1
13 changed files with 215 additions and 18 deletions

163
MAPPING.md Normal file
View file

@ -0,0 +1,163 @@
# Notes for mappers
### Tokens
- **Disabling the store:** Give the player `"SWWMStoreDisabler"` item on map load.
- **Disabling revives:** Give the player `"SWWMReviveDisabler"` item on map load.
**Note:** Tokens are flagged as "unclearable", so they have to be removed directly with `TakeInventory`.
### Mission log
- **Adding a new entry:** `CallACS("SWWMMissionLog","AddLog","YOUR TEXT HERE")`. Prefixed LANGUAGE entries are supported.
- **Setting the date and time:** `CallACS("SWWMMissionLog","SetClock",year,month,day,hour,minute,"timezone")`. Note that month and day start counting from zero, not one *(for programming-related reasons)*.
### Placing items
**DEMOLITIONIST** does not have standard DoomEdNums assigned to any of its items by default, in order to avoid potential collisions with other custom maps, so you will have to set them yourself. Copy the following to your MAPINFO:
```
DoomEdNums
{
// Weapons
29001 = "DeepImpact"
29002 = "ExplodiumGun"
29003 = "Spreadgun"
29004 = "Wallbuster"
29005 = "Eviscerator"
29006 = "Hellblazer"
29007 = "Sparkster"
29008 = "SilverBullet"
29009 = "CandyGun"
29010 = "Ynykron"
// DLC Weapons
29011 = "ItamexHammer"
29012 = "PlasmaBlast"
29013 = "PuntzerBeta"
29014 = "PuntzerGamma"
29015 = "HeavyMahSheenGun"
29016 = "Quadravol"
29017 = "ModernSparkster"
29018 = "RayKhom"
29019 = "MisterRifle"
29020 = "RafanKos"
// Ammo
29021 = "RedShell"
29022 = "RedShell2"
29023 = "RedShell4"
29024 = "GreenShell"
29025 = "GreenShell2"
29026 = "GreenShell4"
29027 = "BlueShell"
29028 = "BlueShell2"
29029 = "BlueShell4"
29030 = "PurpleShell"
29031 = "PurpleShell2"
29032 = "PurpleShell4"
29033 = "BlackShell"
29034 = "BlackShell2"
29035 = "BlackShell4"
29036 = "GoldShell"
29037 = "GoldShell2"
29038 = "GoldShell4"
29039 = "EvisceratorShell"
29040 = "EvisceratorShell2"
29041 = "EvisceratorShell3"
29042 = "EvisceratorSixPack"
29043 = "HellblazerMissiles"
29044 = "HellblazerMissiles2"
29045 = "HellblazerMissiles3"
29046 = "HellblazerMissileMag"
29047 = "HellblazerCrackshots"
29048 = "HellblazerCrackshots2"
29049 = "HellblazerCrackshotMag"
29050 = "HellblazerRavagers"
29051 = "HellblazerRavagerMag"
29052 = "HellblazerWarheads"
29053 = "HellblazerWarheadMag"
29054 = "SparkUnit"
29055 = "SparkUnit2"
29056 = "SilverBulletAmmo"
29057 = "SilverBulletAmmo2"
29058 = "SilverBullets"
29059 = "SilverBullets_2"
29060 = "SilverBullets_3"
29061 = "SilverBullets2"
29062 = "SilverBullets2_2"
29063 = "SilverBullets2_3"
29064 = "CandyGunAmmo"
29065 = "CandyGunBullets"
29066 = "CandyGunBullets2"
29067 = "CandyGunBullets3"
29068 = "YnykronAmmo"
// DLC Ammo
29069 = "SMW05Ammo"
29070 = "SMW05Ammo2"
29071 = "SMW05Ammo3"
29072 = "SMW05SmallAmmo"
29073 = "SMW05BigAmmo"
29074 = "SheenAmmo"
29075 = "SheenAmmo2"
29076 = "SheenAmmo3"
29077 = "SheenSmallAmmo"
29078 = "SheenBigAmmo"
29079 = "QuadravolAmmo"
29080 = "QuadravolAmmo2"
29081 = "QuadravolAmmo3"
29082 = "SparksterBAmmo"
29083 = "SparksterBAmmo2"
29084 = "SparksterBAmmo3"
29085 = "SparksterRAmmo"
29086 = "SparksterRAmmo2"
29087 = "SparksterRAmmo3"
29088 = "RayBolt"
29089 = "RayBolt2"
29090 = "RayBolt5"
29091 = "RayAmmo"
29092 = "MisterRound"
29093 = "MisterRound2"
29094 = "MisterRound3"
29095 = "MisterRound5"
29096 = "MisterRound10"
29097 = "MisterAmmo"
29098 = "MisterGAmmo"
29099 = "MisterGAmmo2"
29100 = "UltimatePod"
29101 = "UltimateAmmo"
// For Hexen
29102 = "FabricatorTier1"
29103 = "FabricatorTier2"
29104 = "FabricatorTier3"
29105 = "FabricatorTier4"
// Backpack
29106 = "HammerspaceEmbiggener"
// Health
29107 = "HealthNuggetItem"
29108 = "TetraHealthItem"
29109 = "CubeHealthItem"
29110 = "RefresherItem"
// Armor
29111 = "ArmorNuggetItem"
29112 = "BlastSuitItem"
29113 = "WarArmorItem"
// Powerups
29114 = "GrilledCheeseSandwich"
29115 = "GhostArtifact"
29116 = "GravitySuppressor"
29117 = "FuckingInvinciball"
29118 = "Ragekit"
29119 = "SWWMLamp"
29120 = "EBarrier"
29121 = "Mykradvo"
29122 = "DivineSprite"
29123 = "AngerySigil"
}
```
**Notes:**
- Embiggeners can be *"merged"* by placing them all in the same exact position. This works for groups of 2, 4, 6 and 8.
- Chanceboxes auto-spawn inside secret sectors as long as there's an unobstructed 32x32x60 space inside them.
- It's possible to manually spawn chanceboxes and even collectibles, but this will have to be done through ZScript in a level postprocessor, as internally they already have DoomEdNums assigned *(in the format 42069xx)*, but they're larger than 16 bits, so *(most?)* map editors can't use it.
- Items have no *"fallback sprites"*, so they're only visible as models in UDB.
- Items with *"shiny"* materials *(e.g. nuggets and health geodesics)* will look dull since UDB can't use their shaders.
- Some multi-skinned models may render incorrectly or have missing parts in UDB due to MODELDEF parsing quirks. This can be noticed from the warnings that will be logged on load.