gzdoom-gles/src/g_strife/a_strifekeys.cpp
Christoph Oelckers 8e631eca0b SVN r54 (trunk)
2006-04-18 22:15:05 +00:00

895 lines
19 KiB
C++

#include "a_keys.h"
#include "a_strifeglobal.h"
#include "p_local.h"
IMPLEMENT_STATELESS_ACTOR (AStrifeKey, Strife, -1, 0)
PROP_RadiusFixed (20)
PROP_HeightFixed (16)
PROP_Flags (MF_SPECIAL|MF_NOTDMATCH)
PROP_Flags2 (MF2_FLOORCLIP)
END_DEFAULTS
// Base Key -----------------------------------------------------------------
class ABaseKey : public AStrifeKey
{
DECLARE_ACTOR (ABaseKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState ABaseKey::States[] =
{
S_NORMAL (FUSL, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ABaseKey, Strife, 230, 0)
PROP_StrifeType (133)
PROP_StrifeTeaserType (129)
PROP_StrifeTeaserType2 (132)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_FUSL")
PROP_Tag ("Base_Key")
END_DEFAULTS
const char *ABaseKey::PickupMessage ()
{
return "You picked up the Base Key.";
}
// Govs Key -----------------------------------------------------------------
class AGovsKey : public AStrifeKey
{
DECLARE_ACTOR (AGovsKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AGovsKey::States[] =
{
S_NORMAL (REBL, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AGovsKey, Strife, -1, 0)
PROP_StrifeType (134)
PROP_StrifeTeaserType (130)
PROP_StrifeTeaserType2 (133)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_REBL")
PROP_Tag ("Govs_Key") // "Rebel_Key" in the Teaser
END_DEFAULTS
const char *AGovsKey::PickupMessage ()
{
return "You picked up the Govs Key.";
}
// Passcard -----------------------------------------------------------------
class APasscard : public AStrifeKey
{
DECLARE_ACTOR (APasscard, AStrifeKey)
public:
const char *PickupMessage ();
};
FState APasscard::States[] =
{
S_NORMAL (TPAS, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (APasscard, Strife, 185, 0)
PROP_StrifeType (135)
PROP_StrifeTeaserType (131)
PROP_StrifeTeaserType2 (134)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_TPAS")
PROP_Tag ("Passcard")
END_DEFAULTS
const char *APasscard::PickupMessage ()
{
return "You picked up the Passcard.";
}
// ID Badge -----------------------------------------------------------------
class AIDBadge : public AStrifeKey
{
DECLARE_ACTOR (AIDBadge, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AIDBadge::States[] =
{
S_NORMAL (CRD1, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AIDBadge, Strife, 184, 0)
PROP_StrifeType (136)
PROP_StrifeTeaserType (132)
PROP_StrifeTeaserType2 (135)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_CRD1")
PROP_Tag ("ID_Badge")
END_DEFAULTS
const char *AIDBadge::PickupMessage ()
{
return "You picked up the ID Badge.";
}
// Prison Key ---------------------------------------------------------------
class APrisonKey : public AStrifeKey
{
DECLARE_ACTOR (APrisonKey, AStrifeKey)
public:
bool TryPickup (AActor *toucher);
const char *PickupMessage ();
};
FState APrisonKey::States[] =
{
S_NORMAL (PRIS, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (APrisonKey, Strife, -1, 0)
PROP_StrifeType (137)
PROP_StrifeTeaserType (133)
PROP_StrifeTeaserType2 (136)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_PRIS")
PROP_Tag ("Prison_Key")
END_DEFAULTS
bool APrisonKey::TryPickup (AActor *toucher)
{
if (Super::TryPickup (toucher))
{
toucher->GiveInventoryType (QuestItemClasses[10]);
return true;
}
return false;
}
const char *APrisonKey::PickupMessage ()
{
return "You picked up the Prison Key.";
}
// Severed Hand -------------------------------------------------------------
class ASeveredHand : public AStrifeKey
{
DECLARE_ACTOR (ASeveredHand, AStrifeKey)
public:
bool TryPickup (AActor *toucher);
const char *PickupMessage ();
};
FState ASeveredHand::States[] =
{
S_NORMAL (HAND, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ASeveredHand, Strife, 91, 0)
PROP_StrifeType (138)
PROP_StrifeTeaserType (134)
PROP_StrifeTeaserType2 (137)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_HAND")
PROP_Tag ("Severed_Hand")
END_DEFAULTS
bool ASeveredHand::TryPickup (AActor *toucher)
{
if (Super::TryPickup (toucher))
{
toucher->GiveInventoryType (QuestItemClasses[11]);
return true;
}
return false;
}
const char *ASeveredHand::PickupMessage ()
{
return "You picked up the Severed Hand.";
}
// Power1 Key ---------------------------------------------------------------
class APower1Key : public AStrifeKey
{
DECLARE_ACTOR (APower1Key, AStrifeKey)
public:
const char *PickupMessage ();
};
FState APower1Key::States[] =
{
S_NORMAL (PWR1, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (APower1Key, Strife, -1, 0)
PROP_StrifeType (139)
PROP_StrifeTeaserType (135)
PROP_StrifeTeaserType2 (138)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_PWR1")
PROP_Tag ("Power1_Key")
END_DEFAULTS
const char *APower1Key::PickupMessage ()
{
return "You picked up the Power1 Key.";
}
// Power2 Key ---------------------------------------------------------------
class APower2Key : public AStrifeKey
{
DECLARE_ACTOR (APower2Key, AStrifeKey)
public:
const char *PickupMessage ();
};
FState APower2Key::States[] =
{
S_NORMAL (PWR2, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (APower2Key, Strife, -1, 0)
PROP_StrifeType (140)
PROP_StrifeTeaserType (136)
PROP_StrifeTeaserType2 (139)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_PWR2")
PROP_Tag ("Power2_Key")
END_DEFAULTS
const char *APower2Key::PickupMessage ()
{
return "You picked up the Power2 Key.";
}
// Power3 Key ---------------------------------------------------------------
class APower3Key : public AStrifeKey
{
DECLARE_ACTOR (APower3Key, AStrifeKey)
public:
const char *PickupMessage ();
};
FState APower3Key::States[] =
{
S_NORMAL (PWR3, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (APower3Key, Strife, -1, 0)
PROP_StrifeType (141)
PROP_StrifeTeaserType (137)
PROP_StrifeTeaserType2 (140)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_PWR3")
PROP_Tag ("Power3_Key")
END_DEFAULTS
const char *APower3Key::PickupMessage ()
{
return "You picked up the Power3 Key.";
}
// Gold Key -----------------------------------------------------------------
class AGoldKey : public AStrifeKey
{
DECLARE_ACTOR (AGoldKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AGoldKey::States[] =
{
S_NORMAL (KY1G, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AGoldKey, Strife, 40, 0)
PROP_StrifeType (142)
PROP_StrifeTeaserType (138)
PROP_StrifeTeaserType2 (141)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_KY1G")
PROP_Tag ("Gold_Key")
END_DEFAULTS
const char *AGoldKey::PickupMessage ()
{
return "You picked up the Gold Key.";
}
// ID Card ------------------------------------------------------------------
class AIDCard : public AStrifeKey
{
DECLARE_ACTOR (AIDCard, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AIDCard::States[] =
{
S_NORMAL (CRD2, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AIDCard, Strife, 13, 0)
PROP_StrifeType (143)
PROP_StrifeTeaserType (139)
PROP_StrifeTeaserType2 (142)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_CRD2")
PROP_Tag ("ID_Card")
END_DEFAULTS
const char *AIDCard::PickupMessage ()
{
return "You picked up the ID Card.";
}
// Silver Key ---------------------------------------------------------------
class ASilverKey : public AStrifeKey
{
DECLARE_ACTOR (ASilverKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState ASilverKey::States[] =
{
S_NORMAL (KY2S, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ASilverKey, Strife, 38, 0)
PROP_StrifeType (144)
PROP_StrifeTeaserType (140)
PROP_StrifeTeaserType2 (143)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_KY2S")
PROP_Tag ("Silver_Key")
END_DEFAULTS
const char *ASilverKey::PickupMessage ()
{
return "You picked up the Silver Key.";
}
// Oracle Key ---------------------------------------------------------------
class AOracleKey : public AStrifeKey
{
DECLARE_ACTOR (AOracleKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AOracleKey::States[] =
{
S_NORMAL (ORAC, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AOracleKey, Strife, 61, 0)
PROP_StrifeType (145)
PROP_StrifeTeaserType (141)
PROP_StrifeTeaserType2 (144)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_ORAC")
PROP_Tag ("Oracle_Key")
END_DEFAULTS
const char *AOracleKey::PickupMessage ()
{
return "You picked up the Oracle Key.";
}
// Military ID --------------------------------------------------------------
class AMilitaryID : public AStrifeKey
{
DECLARE_ACTOR (AMilitaryID, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AMilitaryID::States[] =
{
S_NORMAL (GYID, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AMilitaryID, Strife, -1, 0)
PROP_StrifeType (146)
PROP_StrifeTeaserType (142)
PROP_StrifeTeaserType2 (145)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_GYID")
PROP_Tag ("Military ID")
END_DEFAULTS
const char *AMilitaryID::PickupMessage ()
{
return "You picked up the Military ID.";
}
// Order Key ----------------------------------------------------------------
class AOrderKey : public AStrifeKey
{
DECLARE_ACTOR (AOrderKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AOrderKey::States[] =
{
S_NORMAL (FUBR, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AOrderKey, Strife, 86, 0)
PROP_StrifeType (147)
PROP_StrifeTeaserType (143)
PROP_StrifeTeaserType2 (146)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_FUBR")
PROP_Tag ("Order_Key")
END_DEFAULTS
const char *AOrderKey::PickupMessage ()
{
return "You picked up the Order Key.";
}
// Warehouse Key ------------------------------------------------------------
class AWarehouseKey : public AStrifeKey
{
DECLARE_ACTOR (AWarehouseKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AWarehouseKey::States[] =
{
S_NORMAL (WARE, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AWarehouseKey, Strife, 166, 0)
PROP_StrifeType (148)
PROP_StrifeTeaserType (144)
PROP_StrifeTeaserType2 (147)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_WARE")
PROP_Tag ("Warehouse_Key")
END_DEFAULTS
const char *AWarehouseKey::PickupMessage ()
{
return "You picked up the Warehouse Key.";
}
// Brass Key ----------------------------------------------------------------
class ABrassKey : public AStrifeKey
{
DECLARE_ACTOR (ABrassKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState ABrassKey::States[] =
{
S_NORMAL (KY3B, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ABrassKey, Strife, 39, 0)
PROP_StrifeType (149)
PROP_StrifeTeaserType (145)
PROP_StrifeTeaserType2 (148)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_KY3B")
PROP_Tag ("Brass_Key")
END_DEFAULTS
const char *ABrassKey::PickupMessage ()
{
return "You picked up the Brass Key.";
}
// Red Crystal Key ----------------------------------------------------------
class ARedCrystalKey : public AStrifeKey
{
DECLARE_ACTOR (ARedCrystalKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState ARedCrystalKey::States[] =
{
S_BRIGHT (RCRY, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ARedCrystalKey, Strife, 192, 0)
PROP_StrifeType (150)
PROP_StrifeTeaserType (146)
PROP_StrifeTeaserType2 (149)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_RCRY")
PROP_Tag ("Red_Crystal_Key")
END_DEFAULTS
const char *ARedCrystalKey::PickupMessage ()
{
return "You picked up the Red Crystal Key.";
}
// Blue Crystal Key ---------------------------------------------------------
class ABlueCrystalKey : public AStrifeKey
{
DECLARE_ACTOR (ABlueCrystalKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState ABlueCrystalKey::States[] =
{
S_BRIGHT (BCRY, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ABlueCrystalKey, Strife, 193, 0)
PROP_StrifeType (151)
PROP_StrifeTeaserType (147)
PROP_StrifeTeaserType2 (150)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_BCRY")
PROP_Tag ("Blue_Crystal_Key")
END_DEFAULTS
const char *ABlueCrystalKey::PickupMessage ()
{
return "You picked up the Blue Crystal Key.";
}
// Chapel Key ---------------------------------------------------------------
class AChapelKey : public AStrifeKey
{
DECLARE_ACTOR (AChapelKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AChapelKey::States[] =
{
S_NORMAL (CHAP, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AChapelKey, Strife, 195, 0)
PROP_StrifeType (152)
PROP_StrifeTeaserType (148)
PROP_StrifeTeaserType2 (151)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_CHAP")
PROP_Tag ("Chapel_Key")
END_DEFAULTS
const char *AChapelKey::PickupMessage ()
{
return "You picked up the Chapel Key.";
}
// Catacomb Key -------------------------------------------------------------
class ACatacombKey : public AStrifeKey
{
DECLARE_ACTOR (ACatacombKey, AStrifeKey)
public:
bool TryPickup (AActor *toucher);
const char *PickupMessage ();
};
FState ACatacombKey::States[] =
{
S_NORMAL (TUNL, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ACatacombKey, Strife, -1, 0)
PROP_StrifeType (153)
PROP_StrifeTeaserType (149)
PROP_StrifeTeaserType2 (152)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_TUNL")
PROP_Tag ("Catacomb_Key") // "Tunnel_Key" in the Teaser
END_DEFAULTS
bool ACatacombKey::TryPickup (AActor *toucher)
{
if (Super::TryPickup (toucher))
{
toucher->GiveInventoryType (QuestItemClasses[27]);
return true;
}
return false;
}
const char *ACatacombKey::PickupMessage ()
{
return "You picked up the Catacomb Key.";
}
// Security Key -------------------------------------------------------------
class ASecurityKey : public AStrifeKey
{
DECLARE_ACTOR (ASecurityKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState ASecurityKey::States[] =
{
S_NORMAL (SECK, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ASecurityKey, Strife, -1, 0)
PROP_StrifeType (154)
PROP_StrifeTeaserType (150)
PROP_StrifeTeaserType2 (153)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_SECK")
PROP_Tag ("Security_Key")
END_DEFAULTS
const char *ASecurityKey::PickupMessage ()
{
return "You picked up the Security Key.";
}
// Core Key -----------------------------------------------------------------
class ACoreKey : public AStrifeKey
{
DECLARE_ACTOR (ACoreKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState ACoreKey::States[] =
{
S_NORMAL (GOID, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ACoreKey, Strife, 236, 0)
PROP_StrifeType (155)
PROP_StrifeTeaserType (151)
PROP_StrifeTeaserType2 (154)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_GOID")
PROP_Tag ("Core_Key") // "New_Key1" in the Teaser
END_DEFAULTS
const char *ACoreKey::PickupMessage ()
{
return "You picked up the Core Key.";
}
// Mauler Key ---------------------------------------------------------------
class AMaulerKey : public AStrifeKey
{
DECLARE_ACTOR (AMaulerKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AMaulerKey::States[] =
{
S_NORMAL (BLTK, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AMaulerKey, Strife, 233, 0)
PROP_StrifeType (156)
PROP_StrifeTeaserType (152)
PROP_StrifeTeaserType2 (155)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_BLTK")
PROP_Tag ("Mauler_Key") // "New_Key2" in the Teaser
END_DEFAULTS
const char *AMaulerKey::PickupMessage ()
{
return "You picked up the Mauler Key.";
}
// Factory Key --------------------------------------------------------------
class AFactoryKey : public AStrifeKey
{
DECLARE_ACTOR (AFactoryKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AFactoryKey::States[] =
{
S_NORMAL (PROC, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AFactoryKey, Strife, 234, 0)
PROP_StrifeType (157)
PROP_StrifeTeaserType (153)
PROP_StrifeTeaserType2 (156)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_PROC")
PROP_Tag ("Factory_Key") // "New_Key3" in the Teaser
END_DEFAULTS
const char *AFactoryKey::PickupMessage ()
{
return "You picked up the Factory Key.";
}
// Mine Key -----------------------------------------------------------------
class AMineKey : public AStrifeKey
{
DECLARE_ACTOR (AMineKey, AStrifeKey)
public:
const char *PickupMessage ();
};
FState AMineKey::States[] =
{
S_NORMAL (MINE, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AMineKey, Strife, 235, 0)
PROP_StrifeType (158)
PROP_StrifeTeaserType (154)
PROP_StrifeTeaserType2 (157)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_MINE") // "New_Key4" in the Teaser
PROP_Tag ("MINE_KEY")
END_DEFAULTS
const char *AMineKey::PickupMessage ()
{
return "You picked up the Mine Key.";
}
// New Key5 -----------------------------------------------------------------
class ANewKey5 : public AStrifeKey
{
DECLARE_ACTOR (ANewKey5, AStrifeKey)
public:
const char *PickupMessage ();
};
FState ANewKey5::States[] =
{
S_NORMAL (BLTK, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (ANewKey5, Strife, -1, 0)
PROP_StrifeType (159)
PROP_StrifeTeaserType (155)
PROP_StrifeTeaserType2 (158)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_BLTK")
PROP_Tag ("New_Key5")
END_DEFAULTS
const char *ANewKey5::PickupMessage ()
{
return "You picked up the New Key5.";
}
// Prison Pass --------------------------------------------------------------
class APrisonPass : public AKey
{
DECLARE_ACTOR (APrisonPass, AKey)
public:
bool TryPickup (AActor *toucher);
bool SpecialDropAction (AActor *dropper);
const char *PickupMessage ();
};
FState APrisonPass::States[] =
{
S_NORMAL (TOKN, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (APrisonPass, Strife, -1, 0)
PROP_StrifeType (304)
PROP_StrifeTeaserType (286)
PROP_StrifeTeaserType2 (303)
PROP_SpawnState (0)
PROP_Inventory_Icon ("I_TOKN")
PROP_Tag ("Prison_pass")
END_DEFAULTS
bool APrisonPass::TryPickup (AActor *toucher)
{
Super::TryPickup (toucher);
EV_DoDoor (DDoor::doorOpen, NULL, toucher, 223, 2*FRACUNIT, 0, 0, 0);
toucher->GiveInventoryType (QuestItemClasses[9]);
return true;
}
const char *APrisonPass::PickupMessage ()
{
return "You picked up the Prison pass.";
}
//============================================================================
//
// APrisonPass :: SpecialDropAction
//
// Trying to make a monster that drops a prison pass turns it into an
// OpenDoor223 item instead. That means the only way to get it in Strife
// is through dialog, which is why it doesn't have its own sprite.
//
//============================================================================
bool APrisonPass::SpecialDropAction (AActor *dropper)
{
EV_DoDoor (DDoor::doorOpen, NULL, dropper, 223, 2*FRACUNIT, 0, 0, 0);
Destroy ();
return true;
}
// Oracle Pass --------------------------------------------------------------
class AOraclePass : public AInventory
{
DECLARE_ACTOR (AOraclePass, AInventory)
public:
bool TryPickup (AActor *toucher);
const char *PickupMessage ();
};
FState AOraclePass::States[] =
{
S_NORMAL (OTOK, 'A', -1, NULL, NULL)
};
IMPLEMENT_ACTOR (AOraclePass, Strife, -1, 0)
PROP_StrifeType (311)
PROP_StrifeTeaserType (292)
PROP_StrifeTeaserType2 (309)
PROP_SpawnState (0)
PROP_Inventory_FlagsSet(IF_INVBAR)
PROP_Inventory_Icon ("I_OTOK")
PROP_Tag ("Oracle_Pass")
END_DEFAULTS
bool AOraclePass::TryPickup (AActor *toucher)
{
if (Super::TryPickup (toucher))
{
toucher->GiveInventoryType (QuestItemClasses[17]);
return true;
}
return false;
}
const char *AOraclePass::PickupMessage ()
{
return "You picked up the Oracle Pass.";
}