diff --git a/docs/rh-log.txt b/docs/rh-log.txt index d8c9ec555..fd64569a7 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,4 +1,17 @@ -February 26, 2009 +February 28, 2009 (Changes by Graf Zahl) +- Fixed: Strife's quest based line actions also work in Deathmatch. +- Fixed: Gravity application was not correct. For actors with no vertical + momentum the initial pull is supposed to be twice as strong as when + vertical movement already takes place. +- added invquery CCMD like in Strife. Also removed all underscores from the + tag strings so that they can be printed properly. +- Fixed: Skill baby was missing 'autousehealth' for all games. +- Added a new CVAR: sv_disableautohealth +- Autouse of health items is no longer hardwired to the default item classes. + There's a new property HealthPickup.Autouse. 0 means no autouse, 1 a small + Raven health item, 2 a large Raven health item and 3 a Strife item. + +February 26, 2009 - Removed an early-out in wallscan_striped() that is invalid when drawing a skybox. diff --git a/src/c_bind.cpp b/src/c_bind.cpp index 422437d3c..a6d8488ea 100644 --- a/src/c_bind.cpp +++ b/src/c_bind.cpp @@ -153,10 +153,10 @@ static const FBinding DefStrifeBindings[] = { "backspace", "invdrop" }, { "z", "showpop 3" }, { "k", "showpop 2" }, + { "q", "invquery" }, { NULL } // not done // h - use health - // q - query inventory }; const char *KeyNames[NUM_KEYS] = diff --git a/src/g_game.cpp b/src/g_game.cpp index f2fc66875..343184b4d 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -374,6 +374,17 @@ CCMD (invuse) players[consoleplayer].inventorytics = 0; } +CCMD(invquery) +{ + AInventory *inv = players[consoleplayer].mo->InvSel; + if (inv != NULL) + { + const char *description = inv->GetClass()->Meta.GetMetaString(AMETA_StrifeName); + if (description == NULL) description = inv->GetClass()->TypeName; + Printf(PRINT_HIGH, "%s (%dx)\n", description, inv->Amount); + } +} + CCMD (use) { if (argv.argc() > 1 && who != NULL) diff --git a/src/g_shared/a_pickups.cpp b/src/g_shared/a_pickups.cpp index a9689f4af..c23799806 100644 --- a/src/g_shared/a_pickups.cpp +++ b/src/g_shared/a_pickups.cpp @@ -1530,6 +1530,18 @@ bool AHealthPickup::Use (bool pickup) return P_GiveBody (Owner, health); } +//=========================================================================== +// +// AHealthPickup :: Serialize +// +//=========================================================================== + +void AHealthPickup::Serialize (FArchive &arc) +{ + Super::Serialize(arc); + arc << autousemode; +} + // Backpack ----------------------------------------------------------------- //=========================================================================== diff --git a/src/g_shared/a_pickups.h b/src/g_shared/a_pickups.h index d95e04dd1..dd6067b74 100644 --- a/src/g_shared/a_pickups.h +++ b/src/g_shared/a_pickups.h @@ -341,6 +341,9 @@ class AHealthPickup : public AInventory { DECLARE_CLASS (AHealthPickup, AInventory) public: + int autousemode; + + virtual void Serialize (FArchive &arc); virtual AInventory *CreateCopy (AActor *other); virtual AInventory *CreateTossable (); virtual bool HandlePickup (AInventory *item); diff --git a/src/m_options.cpp b/src/m_options.cpp index 8ed8c6b42..72fb5a8b1 100644 --- a/src/m_options.cpp +++ b/src/m_options.cpp @@ -425,6 +425,7 @@ static menuitem_t ControlsItems[] = { control, "Next item", {NULL}, {0.0}, {0.0}, {0.0}, {(value_t *)"invnext"} }, { control, "Previous item", {NULL}, {0.0}, {0.0}, {0.0}, {(value_t *)"invprev"} }, { control, "Drop item", {NULL}, {0.0}, {0.0}, {0.0}, {(value_t *)"invdrop"} }, + { control, "Query item", {NULL}, {0.0}, {0.0}, {0.0}, {(value_t *)"invquery"} }, { control, "Drop weapon", {NULL}, {0.0}, {0.0}, {0.0}, {(value_t *)"weapdrop"} }, { redtext, " ", {NULL}, {0.0}, {0.0}, {0.0}, {NULL} }, { whitetext,"Other", {NULL}, {0.0}, {0.0}, {0.0}, {NULL} }, diff --git a/src/p_interaction.cpp b/src/p_interaction.cpp index 9a5c7a4f3..876d5c5f1 100644 --- a/src/p_interaction.cpp +++ b/src/p_interaction.cpp @@ -719,72 +719,89 @@ void AActor::Die (AActor *source, AActor *inflictor) // PROC P_AutoUseHealth // //--------------------------------------------------------------------------- +static int CountHealth(TArray &Items) +{ + int counted = 0; + for(unsigned i = 0; i < Items.Size(); i++) + { + counted += Items[i]->Amount * Items[i]->health; + } + return counted; +} + +static int UseHealthItems(TArray &Items, int &saveHealth) +{ + int saved = 0; + + while (Items.Size() > 0 && saveHealth > 0) + { + int maxhealth = 0; + int index = -1; + + // Find the largest item in the list + for(unsigned i = 0; i < Items.Size(); i++) + { + if (Items[i]->health > maxhealth) + { + index = i; + maxhealth = Items[i]->Amount; + } + } + + // Now apply the health items, using the same logic as Heretic anf Hexen. + int count = (saveHealth + maxhealth-1) / maxhealth; + for(int i = 0; i < count; i++) + { + saved += maxhealth; + saveHealth -= maxhealth; + if (--Items[index]->Amount == 0) + { + if (!(Items[index]->ItemFlags & IF_KEEPDEPLETED)) + { + Items[index]->Destroy (); + } + Items.Delete(index); + break; + } + } + } + return saved; +} void P_AutoUseHealth(player_t *player, int saveHealth) { - int i; - int count; - const PClass *normalType = PClass::FindClass (NAME_ArtiHealth); - const PClass *superType = PClass::FindClass (NAME_ArtiSuperHealth); - AInventory *normalItem = player->mo->FindInventory (normalType); - AInventory *superItem = player->mo->FindInventory (superType); - int normalAmount, superAmount; + TArray NormalHealthItems; + TArray LargeHealthItems; - normalAmount = normalItem != NULL ? normalItem->Amount : 0; - superAmount = superItem != NULL ? superItem->Amount : 0; + for(AInventory *inv = player->mo->Inventory; inv != NULL; inv = inv->Inventory) + { + if (inv->Amount > 0 && inv->IsKindOf(RUNTIME_CLASS(AHealthPickup))) + { + int mode = static_cast(inv)->autousemode; + + if (mode == 0) NormalHealthItems.Push(inv); + else if (mode == 1) LargeHealthItems.Push(inv); + } + } + + int normalhealth = CountHealth(NormalHealthItems); + int largehealth = CountHealth(LargeHealthItems); bool skilluse = !!G_SkillProperty(SKILLP_AutoUseHealth); - if (skilluse && (normalAmount*25 >= saveHealth)) + if (skilluse && normalhealth >= saveHealth) { // Use quartz flasks - count = (saveHealth+24)/25; - for(i = 0; i < count; i++) - { - player->health += 25; - if (--normalItem->Amount == 0) - { - normalItem->Destroy (); - break; - } - } + player->health += UseHealthItems(NormalHealthItems, saveHealth); } - else if (superAmount*100 >= saveHealth) - { // Use mystic urns - count = (saveHealth+99)/100; - for(i = 0; i < count; i++) - { - player->health += 100; - if (--superItem->Amount == 0) - { - superItem->Destroy (); - break; - } - } + else if (largehealth >= saveHealth) + { + // Use mystic urns + player->health += UseHealthItems(LargeHealthItems, saveHealth); } - else if (skilluse - && (superAmount*100+normalAmount*25 >= saveHealth)) + else if (skilluse && normalhealth + largehealth >= saveHealth) { // Use mystic urns and quartz flasks - count = (saveHealth+24)/25; - saveHealth -= count*25; - for(i = 0; i < count; i++) - { - player->health += 25; - if (--normalItem->Amount == 0) - { - normalItem->Destroy (); - break; - } - } - count = (saveHealth+99)/100; - for(i = 0; i < count; i++) - { - player->health += 100; - if (--superItem->Amount == 0) - { - superItem->Destroy (); - break; - } - } + player->health += UseHealthItems(NormalHealthItems, saveHealth); + if (saveHealth > 0) player->health += UseHealthItems(LargeHealthItems, saveHealth); } player->mo->health = player->health; } @@ -794,22 +811,47 @@ void P_AutoUseHealth(player_t *player, int saveHealth) // P_AutoUseStrifeHealth // //============================================================================ +CVAR(Bool, sv_disableautohealth, false, CVAR_ARCHIVE|CVAR_SERVERINFO) void P_AutoUseStrifeHealth (player_t *player) { - static const ENamedName healthnames[2] = { NAME_MedicalKit, NAME_MedPatch }; + TArray Items; - for (int i = 0; i < 2; ++i) + for(AInventory *inv = player->mo->Inventory; inv != NULL; inv = inv->Inventory) { - const PClass *type = PClass::FindClass (healthnames[i]); - - while (player->health < 50) + if (inv->Amount > 0 && inv->IsKindOf(RUNTIME_CLASS(AHealthPickup))) { - AInventory *item = player->mo->FindInventory (type); - if (item == NULL) - break; - if (!player->mo->UseInventory (item)) - break; + int mode = static_cast(inv)->autousemode; + + if (mode == 3) Items.Push(inv); + } + } + + if (!sv_disableautohealth) + { + while (Items.Size() > 0) + { + int maxhealth = 0; + int index = -1; + + // Find the largest item in the list + for(unsigned i = 0; i < Items.Size(); i++) + { + if (Items[i]->health > maxhealth) + { + index = i; + maxhealth = Items[i]->Amount; + } + } + + while (player->health < 50) + { + if (!player->mo->UseInventory (Items[index])) + break; + } + if (player->health >= 50) return; + // Using all of this item was not enough so delete it and restart with the next best one + Items.Delete(index); } } } diff --git a/src/p_mobj.cpp b/src/p_mobj.cpp index 3b1e93f5c..6d33313df 100644 --- a/src/p_mobj.cpp +++ b/src/p_mobj.cpp @@ -700,7 +700,7 @@ bool AActor::UseInventory (AInventory *item) return false; } // Don't use it if you don't actually have any of it. - if (item->Amount <= 0) + if (item->Amount <= 0 || (item->ObjectFlags & OF_EuthanizeMe)) { return false; } @@ -1876,8 +1876,11 @@ void P_ZMovement (AActor *mo) if (!mo->waterlevel || mo->flags & MF_CORPSE || (mo->player && !(mo->player->cmd.ucmd.forwardmove | mo->player->cmd.ucmd.sidemove))) { - mo->momz -= (fixed_t)(level.gravity * mo->Sector->gravity * + fixed_t grav = (fixed_t)(level.gravity * mo->Sector->gravity * FIXED2FLOAT(mo->gravity) * 81.92); + + if (mo->momz == 0) mo->momz -= grav + grav; + else mo->momz -= grav; } if (mo->waterlevel > 1) { diff --git a/src/thingdef/thingdef_properties.cpp b/src/thingdef/thingdef_properties.cpp index 67233b391..f08e5ed9b 100644 --- a/src/thingdef/thingdef_properties.cpp +++ b/src/thingdef/thingdef_properties.cpp @@ -1244,6 +1244,15 @@ DEFINE_CLASS_PROPERTY(lowmessage, IS, Health) info->Class->Meta.SetMetaString(AIMETA_LowHealthMessage, str); } +//========================================================================== +// +//========================================================================== +DEFINE_CLASS_PROPERTY(autouse, I, HealthPickup) +{ + PROP_INT_PARM(i, 0); + defaults->autousemode = i; +} + //========================================================================== // //========================================================================== diff --git a/src/version.h b/src/version.h index ea6ff1034..2c4729ffc 100644 --- a/src/version.h +++ b/src/version.h @@ -75,7 +75,7 @@ // SAVESIG should match SAVEVER. // MINSAVEVER is the minimum level snapshot version that can be loaded. -#define MINSAVEVER 1447 +#define MINSAVEVER 1452 #if SVN_REVISION_NUMBER < MINSAVEVER // Never write a savegame with a version lower than what we need diff --git a/strifehelp.acs b/strifehelp.acs index a6a3d4fcc..382af54b3 100644 --- a/strifehelp.acs +++ b/strifehelp.acs @@ -69,7 +69,7 @@ script << 0 >> (int type, int tag) case 230: i = GetLineRowOffset() & 31; - if (CheckInventory (QuestItems[i])) + if (CheckInventory (QuestItems[i]) || gametype() == GAME_NET_DEATHMATCH) { Door_Open (tag, VDOORSPEED); clearlinespecial (); @@ -78,7 +78,7 @@ script << 0 >> (int type, int tag) case 227: i = GetLineRowOffset() & 31; - if (CheckInventory (QuestItems[i])) + if (CheckInventory (QuestItems[i]) || gametype() == GAME_NET_DEATHMATCH) { Door_Close (tag, VDOORSPEED); clearlinespecial (); @@ -126,7 +126,7 @@ script << 0 >> (int type, int tag) case 193: i = GetLineRowOffset() & 31; - if (CheckInventory (QuestItems[i])) + if (CheckInventory (QuestItems[i]) || gametype() == GAME_NET_DEATHMATCH) { Floor_LowerToLowest (tag, 8); clearlinespecial (); @@ -147,7 +147,7 @@ script << 0 >> (int type, int tag) case 187: i = GetLineRowOffset() & 31; - if (CheckInventory (QuestItems[i])) + if (CheckInventory (QuestItems[i]) || gametype() == GAME_NET_DEATHMATCH) { ClearForceField (tag); clearlinespecial (); @@ -155,7 +155,7 @@ script << 0 >> (int type, int tag) break; case 188: - if (CheckInventory ("QuestItem16")) + if (CheckInventory ("QuestItem16") || gametype() == GAME_NET_DEATHMATCH) { Door_Open (tag, VDOORSPEED); clearlinespecial (); @@ -172,7 +172,7 @@ script << 0 >> (int type, int tag) case 215: i = (tag % 100) & 31; - if (CheckInventory (QuestItems[i])) + if (CheckInventory (QuestItems[i]) || gametype() == GAME_NET_DEATHMATCH) { SendToCommunicator (tag/100, 0, 1, 0); clearlinespecial (); @@ -192,7 +192,7 @@ script << 0 >> (int type, int tag) case 216: i = GetLineRowOffset() & 31; - if (CheckInventory (QuestItems[i])) + if (CheckInventory (QuestItems[i]) || gametype() == GAME_NET_DEATHMATCH) { Door_Raise (tag, VDOORSPEED, VDOORWAIT); } @@ -205,6 +205,7 @@ script << 0 >> (int type, int tag) if (gametype() == GAME_NET_DEATHMATCH) { Floor_RaiseByValue (tag, 128, 64); + clearlinespecial(); } else { @@ -261,7 +262,7 @@ script << 0 >> (int type, int tag) break; case 232: - if (!CheckInventory ("QuestItem18")) + if (!CheckInventory ("QuestItem18") && gametype() != GAME_NET_DEATHMATCH) { print (s:"You need the Oracle Pass!"); activatorsound ("*usefail", 127); @@ -382,7 +383,7 @@ script << 0 >> (int type, int tag) break; case 234: - if (CheckInventory ("QuestItem3")) + if (CheckInventory ("QuestItem3") || gametype() == GAME_NET_DEATHMATCH) { SetResultValue (Door_Raise (tag, VDOORSPEED, VDOORWAIT)); } diff --git a/wadsrc/static/acs/strfhelp.o b/wadsrc/static/acs/strfhelp.o index 820fcb0c7..d267516a7 100644 Binary files a/wadsrc/static/acs/strfhelp.o and b/wadsrc/static/acs/strfhelp.o differ diff --git a/wadsrc/static/actors/raven/ravenartifacts.txt b/wadsrc/static/actors/raven/ravenartifacts.txt index e0ac2d7cb..84264764b 100644 --- a/wadsrc/static/actors/raven/ravenartifacts.txt +++ b/wadsrc/static/actors/raven/ravenartifacts.txt @@ -13,6 +13,7 @@ ACTOR ArtiHealth : HealthPickup 82 Inventory.Icon ARTIPTN2 Inventory.PickupSound "misc/p_pkup" Inventory.PickupMessage "$TXT_ARTIHEALTH" + HealthPickup.Autouse 1 States { Spawn: @@ -35,6 +36,7 @@ ACTOR ArtiSuperHealth : HealthPickup 32 Inventory.Icon ARTISPHL Inventory.PickupSound "misc/p_pkup" Inventory.PickupMessage "$TXT_ARTISUPERHEALTH" + HealthPickup.Autouse 2 States { Spawn: diff --git a/wadsrc/static/actors/strife/coin.txt b/wadsrc/static/actors/strife/coin.txt index 73363da1a..f569fb1ed 100644 --- a/wadsrc/static/actors/strife/coin.txt +++ b/wadsrc/static/actors/strife/coin.txt @@ -29,7 +29,7 @@ ACTOR Gold10 : Coin 138 Game Strife ConversationID 169, 162, 166 Inventory.Amount 10 - Tag "10_gold" + Tag "10 gold" Inventory.PickupMessage "$TXT_10GOLD" States { @@ -46,7 +46,7 @@ ACTOR Gold25 : Coin 139 Game Strife ConversationID 170, 163, 167 Inventory.Amount 25 - Tag "25_gold" + Tag "25 gold" Inventory.PickupMessage "$TXT_25GOLD" States { @@ -63,7 +63,7 @@ ACTOR Gold50 : Coin 140 Game Strife ConversationID 171, 164, 168 Inventory.Amount 50 - Tag "50_gold" + Tag "50 gold" Inventory.PickupMessage "$TXT_50GOLD" States { @@ -79,7 +79,7 @@ ACTOR Gold300 : Coin { ConversationID 172, -1, -1 Inventory.Amount 300 - Tag "300_gold" + Tag "300 gold" Inventory.PickupMessage "$TXT_300GOLD" Inventory.GiveQuest 3 +INVENTORY.ALWAYSPICKUP diff --git a/wadsrc/static/actors/strife/merchants.txt b/wadsrc/static/actors/strife/merchants.txt index 2e235c75c..d06ee607d 100644 --- a/wadsrc/static/actors/strife/merchants.txt +++ b/wadsrc/static/actors/strife/merchants.txt @@ -58,7 +58,7 @@ ACTOR WeaponSmith : Merchant 116 Game Strife ConversationID 2 PainSound "smith/pain" - Tag "Weapon_Smith" + Tag "Weapon Smith" } @@ -71,7 +71,7 @@ ACTOR BarKeep : Merchant 72 ConversationID 3 PainSound "barkeep/pain" ActiveSound "barkeep/active" - Tag "Bar_Keep" + Tag "Bar Keep" } diff --git a/wadsrc/static/actors/strife/ratbuddy.txt b/wadsrc/static/actors/strife/ratbuddy.txt index 660e28d66..762aff659 100644 --- a/wadsrc/static/actors/strife/ratbuddy.txt +++ b/wadsrc/static/actors/strife/ratbuddy.txt @@ -12,7 +12,7 @@ ACTOR RatBuddy 85 MinMissileChance 150 MaxStepHeight 16 MaxDropoffHeight 32 - Tag "rat_buddy" + Tag "rat buddy" SeeSound "rat/sight" DeathSound "rat/death" ActiveSound "rat/active" diff --git a/wadsrc/static/actors/strife/rebels.txt b/wadsrc/static/actors/strife/rebels.txt index 7b6ac8fff..71cd55a19 100644 --- a/wadsrc/static/actors/strife/rebels.txt +++ b/wadsrc/static/actors/strife/rebels.txt @@ -124,7 +124,7 @@ ACTOR TeleporterBeacon : Inventory 10 native +DROPPED +INVENTORY.INVBAR Inventory.Icon "I_BEAC" - Tag "Teleporter_Beacon" + Tag "Teleporter Beacon" Inventory.PickupMessage "$TXT_BEACON" action native A_Beacon (); diff --git a/wadsrc/static/actors/strife/strifeammo.txt b/wadsrc/static/actors/strife/strifeammo.txt index f34af7fc5..1de16474f 100644 --- a/wadsrc/static/actors/strife/strifeammo.txt +++ b/wadsrc/static/actors/strife/strifeammo.txt @@ -10,7 +10,7 @@ ACTOR HEGrenadeRounds : Ammo 152 Ammo.BackpackAmount 6 Ammo.BackpackMaxAmount 60 Inventory.Icon "I_GRN1" - Tag "HE-Grenade_Rounds" + Tag "HE-Grenade Rounds" Inventory.PickupMessage "$TXT_HEGRENADES" States { @@ -32,7 +32,7 @@ ACTOR PhosphorusGrenadeRounds : Ammo 153 Ammo.BackpackAmount 4 Ammo.BackpackMaxAmount 32 Inventory.Icon "I_GRN2" - Tag "Phoshorus-Grenade_Rounds" // "Fire-Grenade_Rounds" in the Teaser + Tag "Phoshorus-Grenade Rounds" // "Fire-Grenade_Rounds" in the Teaser Inventory.PickupMessage "$TXT_PHGRENADES" States { @@ -55,7 +55,7 @@ ACTOR ClipOfBullets : Ammo 2007 Ammo.BackpackAmount 10 Ammo.BackpackMaxAmount 500 Inventory.Icon "I_BLIT" - Tag "clip_of_bullets" // "bullets" in the Teaser + Tag "Clip of Bullets" // "bullets" in the Teaser Inventory.PickupMessage "$TXT_CLIPOFBULLETS" States { @@ -73,7 +73,7 @@ ACTOR BoxOfBullets : ClipOfBullets 2048 SpawnID 139 ConversationID 180, 174, 178 Inventory.Amount 50 - Tag "ammo" + Tag "Ammo" Inventory.PickupMessage "$TXT_BOXOFBULLETS" States { @@ -96,7 +96,7 @@ ACTOR MiniMissiles : Ammo 2010 Ammo.BackpackAmount 4 Ammo.BackpackMaxAmount 200 Inventory.Icon "I_ROKT" - Tag "mini_missiles" //"rocket" in the Teaser + Tag "Mini Missiles" //"rocket" in the Teaser Inventory.PickupMessage "$TXT_MINIMISSILES" States { @@ -114,7 +114,7 @@ ACTOR CrateOfMissiles : MiniMissiles 2046 SpawnID 141 ConversationID 182, 176, 180 Inventory.Amount 20 - Tag "crate_of_missiles" //"box_of_rockets" in the Teaser + Tag "Crate of Missiles" //"box_of_rockets" in the Teaser Inventory.PickupMessage "$TXT_CRATEOFMISSILES" States { @@ -138,7 +138,7 @@ ACTOR EnergyPod : Ammo 2047 Ammo.BackpackMaxAmount 800 Ammo.DropAmount 20 Inventory.Icon "I_BRY1" - Tag "energy_pod" + Tag "Energy Pod" Inventory.PickupMessage "$TXT_ENERGYPOD" States { @@ -156,7 +156,7 @@ ACTOR EnergyPack : EnergyPod 17 SpawnID 142 ConversationID 184, 178, 182 Inventory.Amount 100 - Tag "energy_pack" + Tag "Energy Pack" Inventory.PickupMessage "$TXT_ENERGYPACK" States { @@ -178,7 +178,7 @@ ACTOR PoisonBolts : Ammo 115 Ammo.BackpackAmount 2 Ammo.BackpackMaxAmount 50 Inventory.Icon "I_PQRL" - Tag "poison_bolts" // "poison_arrows" in the Teaser + Tag "Poison Bolts" // "poison_arrows" in the Teaser Inventory.PickupMessage "$TXT_POISONBOLTS" States { @@ -200,7 +200,7 @@ ACTOR ElectricBolts : Ammo 114 Ammo.BackpackAmount 4 Ammo.BackpackMaxAmount 100 Inventory.Icon "I_XQRL" - Tag "electric_bolts" // "electric_arrows" in the Teaser + Tag "Electric Bolts" // "electric_arrows" in the Teaser Inventory.PickupMessage "$TXT_ELECTRICBOLTS" States { @@ -219,7 +219,7 @@ ACTOR AmmoSatchel : BackpackItem 183 ConversationID 187, 181, 184 +FLOORCLIP Inventory.Icon "I_BKPK" - Tag "Ammo_satchel" // "Back_pack" in the Teaser + Tag "Ammo Satchel" // "Back_pack" in the Teaser Inventory.PickupMessage "$TXT_AMMOSATCHEL" States { diff --git a/wadsrc/static/actors/strife/strifearmor.txt b/wadsrc/static/actors/strife/strifearmor.txt index e3b9bafaa..2be8d8ad6 100644 --- a/wadsrc/static/actors/strife/strifearmor.txt +++ b/wadsrc/static/actors/strife/strifearmor.txt @@ -14,7 +14,7 @@ ACTOR MetalArmor : BasicArmorPickup 2019 Inventory.PickupMessage "$TXT_METALARMOR" Armor.SaveAmount 200 Armor.SavePercent 50 - Tag "Metal_Armor" + Tag "Metal Armor" States { Spawn: @@ -38,7 +38,7 @@ ACTOR LeatherArmor : BasicArmorPickup 2018 Inventory.PickupMessage "$TXT_LEATHERARMOR" Armor.SaveAmount 100 Armor.SavePercent 33.335 - Tag "Leather_Armor" + Tag "Leather Armor" States { Spawn: diff --git a/wadsrc/static/actors/strife/strifeitems.txt b/wadsrc/static/actors/strife/strifeitems.txt index 0ab204e8d..407a91843 100644 --- a/wadsrc/static/actors/strife/strifeitems.txt +++ b/wadsrc/static/actors/strife/strifeitems.txt @@ -8,9 +8,10 @@ ACTOR MedPatch : HealthPickup 2011 +FLOORCLIP +INVENTORY.INVBAR Inventory.MaxAmount 20 - Tag "Med_patch" + Tag "Med patch" Inventory.Icon "I_STMP" Inventory.PickupMessage "$TXT_MEDPATCH" + HealthPickup.Autouse 3 States { Spawn: @@ -30,9 +31,10 @@ ACTOR MedicalKit : HealthPickup 2012 +FLOORCLIP +INVENTORY.INVBAR Inventory.MaxAmount 15 - Tag "Medical_kit" + Tag "Medical kit" Inventory.Icon "I_MDKT" Inventory.PickupMessage "$TXT_MEDICALKIT" + HealthPickup.Autouse 3 States { Spawn: @@ -52,7 +54,7 @@ ACTOR SurgeryKit : HealthPickup 83 +INVENTORY.INVBAR Health -100 Inventory.MaxAmount 5 - Tag "Surgery_Kit" // "full_health" in the Teaser + Tag "Surgery Kit" // "full_health" in the Teaser Inventory.Icon "I_FULL" Inventory.PickupMessage "$TXT_SURGERYKIT" States @@ -92,7 +94,7 @@ ACTOR BeldinsRing : Inventory +FLOORCLIP +INVENTORY.INVBAR ConversationID 173, 165, 169 - Tag "ring" + Tag "Ring" Inventory.Icon "I_RING" Inventory.GiveQuest 1 Inventory.PickupMessage "$TXT_BELDINSRING" @@ -116,7 +118,7 @@ ACTOR OfferingChalice : Inventory 205 ConversationID 174, 166, 170 Radius 10 Height 16 - Tag "Offering_Chalice" + Tag "Offering Chalice" Inventory.Icon "I_RELC" Inventory.PickupMessage "$TXT_OFFERINGCHALICE" Inventory.GiveQuest 2 @@ -137,7 +139,7 @@ ACTOR Ear : Inventory +FLOORCLIP +INVENTORY.INVBAR ConversationID 175, 167, 171 - Tag "ear" + Tag "Ear" Inventory.Icon "I_EARS" Inventory.PickupMessage "$TXT_EAR" Inventory.GiveQuest 9 @@ -162,7 +164,7 @@ ACTOR BrokenPowerCoupling : Inventory 226 +INVENTORY.INVBAR Radius 16 Height 16 - Tag "BROKEN_POWER_COUPLING" + Tag "Broken Power Coupling" Inventory.MaxAmount 1 Inventory.Icon "I_COUP" Inventory.PickupMessage "$TXT_BROKENCOUPLING" @@ -188,7 +190,7 @@ ACTOR ShadowArmor : PowerupGiver 2024 +INVENTORY.INVBAR -INVENTORY.FANCYPICKUPSOUND RenderStyle Translucent - Tag "Shadow_armor" + Tag "Shadow Armor" Inventory.MaxAmount 2 Powerup.Type "Shadow" Inventory.Icon "I_SHD1" @@ -215,7 +217,7 @@ ACTOR EnvironmentalSuit : PowerupGiver 2025 -INVENTORY.FANCYPICKUPSOUND Inventory.MaxAmount 5 Powerup.Type "Mask" - Tag "Environmental_Suit" + Tag "Environmental Suit" Inventory.Icon "I_MASK" Inventory.PickupSound "misc/i_pkup" Inventory.PickupMessage "$TXT_ENVSUIT" @@ -236,7 +238,7 @@ ACTOR GuardUniform : Inventory 90 ConversationID 162, 158, 161 +FLOORCLIP +INVENTORY.INVBAR - Tag "Guard_Uniform" + Tag "Guard Uniform" Inventory.Icon "I_UNIF" Inventory.PickupMessage "$TXT_GUARDUNIFORM" Inventory.GiveQuest 15 @@ -257,7 +259,7 @@ ACTOR OfficersUniform : Inventory 52 ConversationID 163, 159, 162 +FLOORCLIP +INVENTORY.INVBAR - Tag "Officer's_Uniform" + Tag "Officer's Uniform" Inventory.Icon "I_OFIC" Inventory.PickupMessage "$TXT_OFFICERSUNIFORM" States @@ -278,7 +280,7 @@ ACTOR FlameThrowerParts : Inventory +FLOORCLIP +INVENTORY.INVBAR Inventory.Icon "I_BFLM" - Tag "flame_thrower_parts" + Tag "Flame Thrower Parts" Inventory.PickupMessage "$TXT_FTHROWERPARTS" States { @@ -298,7 +300,7 @@ ACTOR InterrogatorReport : Inventory Game Strife ConversationID 308, 289, 306 +FLOORCLIP - Tag "report" + Tag "Report" Inventory.PickupMessage "$TXT_REPORT" States { @@ -317,7 +319,7 @@ ACTOR Info : Inventory ConversationID 300, 282, 299 +FLOORCLIP +INVENTORY.INVBAR - Tag "info" + Tag "Info" Inventory.Icon "I_TOKN" Inventory.PickupMessage "$TXT_INFO" States @@ -387,7 +389,7 @@ ACTOR DegninOre : Inventory 59 native +FLOORCLIP +INCOMBAT +INVENTORY.INVBAR - Tag "Degnin_Ore" + Tag "Degnin Ore" DeathSound "ore/explode" Inventory.Icon "I_XPRK" Inventory.PickupMessage "$TXT_DEGNINORE" @@ -457,7 +459,7 @@ ACTOR Scanner : PowerupGiver 2027 native +FLOORCLIP +INVENTORY.FANCYPICKUPSOUND Inventory.MaxAmount 1 - Tag "scanner" + Tag "Scanner" Inventory.Icon "I_PMUP" Powerup.Type "Scanner" Inventory.PickupSound "misc/i_pkup" @@ -477,7 +479,7 @@ ACTOR PrisonPass : Key native Game Strife ConversationID 304, 286, 303 Inventory.Icon "I_TOKN" - Tag "Prison_pass" + Tag "Prison Pass" Inventory.PickupMessage "TXT_PRISONPASS" States { @@ -507,7 +509,7 @@ ACTOR DummyStrifeItem : Inventory native ACTOR RaiseAlarm : DummyStrifeItem native { ConversationID 301, 283, 300 - Tag "alarm" + Tag "Alarm" } // Open door tag 222 -------------------------------------------------------- diff --git a/wadsrc/static/actors/strife/strifekeys.txt b/wadsrc/static/actors/strife/strifekeys.txt index 805df8801..d128cbbd6 100644 --- a/wadsrc/static/actors/strife/strifekeys.txt +++ b/wadsrc/static/actors/strife/strifekeys.txt @@ -13,7 +13,7 @@ ACTOR BaseKey : StrifeKey 230 Game Strife ConversationID 133, 129, 132 Inventory.Icon "I_FUSL" - Tag "Base_Key" + Tag "Base Key" Inventory.PickupMessage "$TXT_BASEKEY" States { @@ -31,7 +31,7 @@ ACTOR GovsKey : StrifeKey Game Strife ConversationID 134, 130, 133 Inventory.Icon "I_REBL" - Tag "Govs_Key" // "Rebel_Key" in the Teaser + Tag "Govs Key" // "Rebel_Key" in the Teaser Inventory.PickupMessage "$TXT_GOVSKEY" States { @@ -67,7 +67,7 @@ ACTOR IDBadge : StrifeKey 184 Game Strife ConversationID 136, 132, 135 Inventory.Icon "I_CRD1" - Tag "ID_Badge" + Tag "ID Badge" Inventory.PickupMessage "$TXT_IDBADGE" States { @@ -85,7 +85,7 @@ ACTOR PrisonKey : StrifeKey Game Strife ConversationID 137, 133, 136 Inventory.Icon "I_PRIS" - Tag "Prison_Key" + Tag "Prison Key" Inventory.GiveQuest 11 Inventory.PickupMessage "$TXT_PRISONKEY" States @@ -104,7 +104,7 @@ ACTOR SeveredHand : StrifeKey 91 Game Strife ConversationID 138, 134, 137 Inventory.Icon "I_HAND" - Tag "Severed_Hand" + Tag "Severed Hand" Inventory.GiveQuest 12 Inventory.PickupMessage "$TXT_SEVEREDHAND" States @@ -123,7 +123,7 @@ ACTOR Power1Key : StrifeKey Game Strife ConversationID 139, 135, 138 Inventory.Icon "I_PWR1" - Tag "Power1_Key" + Tag "Power1 Key" Inventory.PickupMessage "$TXT_POWER1KEY" States { @@ -141,7 +141,7 @@ ACTOR Power2Key : StrifeKey Game Strife ConversationID 140, 136, 139 Inventory.Icon "I_PWR2" - Tag "Power2_Key" + Tag "Power2 Key" Inventory.PickupMessage "$TXT_POWER2KEY" States { @@ -159,7 +159,7 @@ ACTOR Power3Key : StrifeKey Game Strife ConversationID 141, 137, 140 Inventory.Icon "I_PWR3" - Tag "Power3_Key" + Tag "Power3 Key" Inventory.PickupMessage "$TXT_POWER3KEY" States { @@ -177,7 +177,7 @@ ACTOR GoldKey : StrifeKey 40 Game Strife ConversationID 142, 138, 141 Inventory.Icon "I_KY1G" - Tag "Gold_Key" + Tag "Gold Key" Inventory.PickupMessage "$TXT_GOLDKEY" States { @@ -195,7 +195,7 @@ ACTOR IDCard : StrifeKey 13 Game Strife ConversationID 143, 139, 142 Inventory.Icon "I_CRD2" - Tag "ID_Card" + Tag "ID Card" Inventory.PickupMessage "$TXT_IDCARD" States { @@ -213,7 +213,7 @@ ACTOR SilverKey : StrifeKey 38 Game Strife ConversationID 144, 140, 143 Inventory.Icon "I_KY2S" - Tag "Silver_Key" + Tag "Silver Key" Inventory.PickupMessage "$TXT_SILVERKEY" States { @@ -231,7 +231,7 @@ ACTOR OracleKey : StrifeKey 61 Game Strife ConversationID 145, 141, 144 Inventory.Icon "I_ORAC" - Tag "Oracle_Key" + Tag "Oracle Key" Inventory.PickupMessage "$TXT_ORACLEKEY" States { @@ -267,7 +267,7 @@ ACTOR OrderKey : StrifeKey 86 Game Strife ConversationID 147, 143, 146 Inventory.Icon "I_FUBR" - Tag "Order_Key" + Tag "Order Key" Inventory.PickupMessage "$TXT_ORDERKEY" States { @@ -285,7 +285,7 @@ ACTOR WarehouseKey : StrifeKey 166 Game Strife ConversationID 148, 144, 147 Inventory.Icon "I_WARE" - Tag "Warehouse_Key" + Tag "Warehouse Key" Inventory.PickupMessage "$TXT_WAREHOUSEKEY" States { @@ -303,7 +303,7 @@ ACTOR BrassKey : StrifeKey 39 Game Strife ConversationID 149, 145, 148 Inventory.Icon "I_KY3B" - Tag "Brass_Key" + Tag "Brass Key" Inventory.PickupMessage "$TXT_BRASSKEY" States { @@ -321,7 +321,7 @@ ACTOR RedCrystalKey : StrifeKey 192 Game Strife ConversationID 150, 146, 149 Inventory.Icon "I_RCRY" - Tag "Red_Crystal_Key" + Tag "Red Crystal Key" Inventory.PickupMessage "$TXT_REDCRYSTAL" States { @@ -339,7 +339,7 @@ ACTOR BlueCrystalKey : StrifeKey 193 Game Strife ConversationID 151, 147, 150 Inventory.Icon "I_BCRY" - Tag "Blue_Crystal_Key" + Tag "Blue Crystal Key" Inventory.PickupMessage "$TXT_BLUECRYSTAL" States { @@ -357,7 +357,7 @@ ACTOR ChapelKey : StrifeKey 195 Game Strife ConversationID 152, 148, 151 Inventory.Icon "I_CHAP" - Tag "Chapel_Key" + Tag "Chapel Key" Inventory.PickupMessage "$TXT_CHAPELKEY" States { @@ -375,7 +375,7 @@ ACTOR CatacombKey : StrifeKey Game Strife ConversationID 153, 149, 152 Inventory.Icon "I_TUNL" - Tag "Catacomb_Key" // "Tunnel_Key" in the Teaser + Tag "Catacomb Key" // "Tunnel_Key" in the Teaser Inventory.GiveQuest 28 Inventory.PickupMessage "$TXT_CATACOMBKEY" States @@ -394,7 +394,7 @@ ACTOR SecurityKey : StrifeKey Game Strife ConversationID 154, 150, 153 Inventory.Icon "I_SECK" - Tag "Security_Key" + Tag "Security Key" Inventory.PickupMessage "$TXT_SECURITYKEY" States { @@ -412,7 +412,7 @@ ACTOR CoreKey : StrifeKey 236 Game Strife ConversationID 155, 151, 154 Inventory.Icon "I_GOID" - Tag "Core_Key" // "New_Key1" in the Teaser + Tag "Core Key" // "New_Key1" in the Teaser Inventory.PickupMessage "$TXT_COREKEY" States { @@ -430,7 +430,7 @@ ACTOR MaulerKey : StrifeKey 233 Game Strife ConversationID 156, 152, 155 Inventory.Icon "I_BLTK" - Tag "Mauler_Key" // "New_Key2" in the Teaser + Tag "Mauler Key" // "New_Key2" in the Teaser Inventory.PickupMessage "$TXT_MAULERKEY" States { @@ -448,7 +448,7 @@ ACTOR FactoryKey : StrifeKey 234 Game Strife ConversationID 157, 153, 156 Inventory.Icon "I_PROC" - Tag "Factory_Key" // "New_Key3" in the Teaser + Tag "Factory Key" // "New_Key3" in the Teaser Inventory.PickupMessage "$TXT_FACTORYKEY" States { @@ -466,7 +466,7 @@ ACTOR MineKey : StrifeKey 235 Game Strife ConversationID 158, 154, 157 Inventory.Icon "I_MINE" // "New_Key4" in the Teaser - Tag "MINE_KEY" + Tag "Mine_Key" Inventory.PickupMessage "$TXT_MINEKEY" States { @@ -484,7 +484,7 @@ ACTOR NewKey5 : StrifeKey Game Strife ConversationID 159, 155, 158 Inventory.Icon "I_BLTK" - Tag "New_Key5" + Tag "New Key5" Inventory.PickupMessage "$TXT_NEWKEY5" States { @@ -505,7 +505,7 @@ ACTOR OraclePass : Inventory Inventory.Icon "I_OTOK" Inventory.GiveQuest 18 Inventory.PickupMessage "$TXT_ORACLEPASS" - Tag "Oracle_Pass" + Tag "Oracle Pass" States { Spawn: diff --git a/wadsrc/static/actors/strife/strifeweapons.txt b/wadsrc/static/actors/strife/strifeweapons.txt index 2b4c5639f..14af4b290 100644 --- a/wadsrc/static/actors/strife/strifeweapons.txt +++ b/wadsrc/static/actors/strife/strifeweapons.txt @@ -159,7 +159,7 @@ ACTOR StrifeCrossbow : StrifeWeapon 2001 Weapon.SisterWeapon "StrifeCrossbow2" Inventory.PickupMessage "$TXT_STRIFECROSSBOW" Inventory.Icon "CBOWA0" - Tag "crossbow" + Tag "Crossbow" action native A_ClearFlash (); action native A_ShowElectricFlash (); @@ -243,7 +243,7 @@ actor AssaultGun : StrifeWeapon 2002 Weapon.AmmoGive1 20 Weapon.AmmoType1 "ClipOfBullets" Inventory.Icon "RIFLA0" - Tag "assault_gun" + Tag "Assault Gun" Inventory.PickupMessage "$TXT_ASSAULTGUN" States { @@ -299,7 +299,7 @@ ACTOR MiniMissileLauncher : StrifeWeapon 2003 Weapon.AmmoGive1 8 Weapon.AmmoType1 "MiniMissiles" Inventory.Icon "MMSLA0" - Tag "mini_missile_launcher" + Tag "Mini Missile Launcher" Inventory.PickupMessage "$TXT_MMLAUNCHER" action native A_FireMiniMissile (); @@ -407,7 +407,7 @@ ACTOR FlameThrower : StrifeWeapon 2005 Weapon.ReadySound "weapons/flameidle" Weapon.AmmoType1 "EnergyPod" Inventory.Icon "FLAMA0" - Tag "flame_thrower" + Tag "Flame Thrower" Inventory.PickupMessage "$TXT_FLAMER" action native A_FireFlamer (); @@ -483,7 +483,7 @@ ACTOR Mauler : StrifeWeapon 2004 Weapon.AmmoType1 "EnergyPod" Weapon.SisterWeapon "Mauler2" Inventory.Icon "TRPDA0" - Tag "mauler" + Tag "Mauler" Inventory.PickupMessage "$TXT_MAULER" action native A_FireMauler1 (); @@ -749,7 +749,7 @@ ACTOR StrifeGrenadeLauncher : StrifeWeapon 154 Weapon.AmmoType1 "HEGrenadeRounds" Weapon.SisterWeapon "StrifeGrenadeLauncher2" Inventory.Icon "GRNDA0" - Tag "Grenade_launcher" + Tag "Grenade Launcher" Inventory.PickupMessage "$TXT_GLAUNCHER" action native A_FireGrenade (class grenadetype, int angleofs, state flash); diff --git a/wadsrc/static/mapinfo/chex.txt b/wadsrc/static/mapinfo/chex.txt index 81f21bbfa..cdd9aa712 100644 --- a/wadsrc/static/mapinfo/chex.txt +++ b/wadsrc/static/mapinfo/chex.txt @@ -2,6 +2,7 @@ skill baby { + AutoUseHealth AmmoFactor = 2 DamageFactor = 0.5 EasyBossBrain diff --git a/wadsrc/static/mapinfo/doomcommon.txt b/wadsrc/static/mapinfo/doomcommon.txt index fdc49a736..82cf91115 100644 --- a/wadsrc/static/mapinfo/doomcommon.txt +++ b/wadsrc/static/mapinfo/doomcommon.txt @@ -1,5 +1,6 @@ skill baby { + AutoUseHealth AmmoFactor = 2 DamageFactor = 0.5 EasyBossBrain diff --git a/wadsrc/static/mapinfo/heretic.txt b/wadsrc/static/mapinfo/heretic.txt index 1e0576727..11a2b81af 100644 --- a/wadsrc/static/mapinfo/heretic.txt +++ b/wadsrc/static/mapinfo/heretic.txt @@ -1,6 +1,7 @@ // MAPINFO for Heretic (Shareware and Retail) skill baby { + AutoUseHealth AmmoFactor = 1.5 DoubleAmmoFactor = 1.5 DamageFactor = 0.5 diff --git a/wadsrc/static/mapinfo/hexen.txt b/wadsrc/static/mapinfo/hexen.txt index 3de550021..5760d3fb9 100644 --- a/wadsrc/static/mapinfo/hexen.txt +++ b/wadsrc/static/mapinfo/hexen.txt @@ -2,6 +2,7 @@ // Most of the MAPINFO is still in hexen.wad. skill baby { + AutoUseHealth AmmoFactor = 1.5 DoubleAmmoFactor = 1.5 DamageFactor = 0.5 diff --git a/wadsrc/static/mapinfo/strife.txt b/wadsrc/static/mapinfo/strife.txt index 92a5607c6..3ea9f9441 100644 --- a/wadsrc/static/mapinfo/strife.txt +++ b/wadsrc/static/mapinfo/strife.txt @@ -1,6 +1,7 @@ // MAPINFO for Strife (full version and teaser) skill baby { + AutoUseHealth AmmoFactor = 2 DamageFactor = 0.5 EasyBossBrain