Directory restructuring to make it easier to version projects that don't build zdoom.exe.

SVN r4 (trunk)
This commit is contained in:
Randy Heit 2006-02-24 04:48:15 +00:00
commit cf11cbdb30
821 changed files with 361202 additions and 0 deletions

View file

@ -0,0 +1,523 @@
#include "info.h"
#include "a_pickups.h"
#include "a_artifacts.h"
#include "gstrings.h"
#include "p_local.h"
#include "p_enemy.h"
#include "s_sound.h"
#include "c_console.h"
enum
{
puzzskull,
puzzgembig,
puzzgemred,
puzzgemgreen1,
puzzgemgreen2,
puzzgemblue1,
puzzgemblue2,
puzzbook1,
puzzbook2,
puzzskull2,
puzzfweapon,
puzzcweapon,
puzzmweapon,
puzzgear1,
puzzgear2,
puzzgear3,
puzzgear4,
};
IMPLEMENT_STATELESS_ACTOR (APuzzleItem, Any, -1, 0)
PROP_Flags (MF_SPECIAL|MF_NOGRAVITY)
PROP_Inventory_FlagsSet (IF_INVBAR)
PROP_Inventory_DefMaxAmount
PROP_UseSound ("PuzzleSuccess")
PROP_Inventory_PickupSound ("misc/i_pkup")
END_DEFAULTS
void APuzzleItem::Serialize (FArchive &arc)
{
Super::Serialize (arc);
arc << PuzzleItemNumber;
}
bool APuzzleItem::HandlePickup (AInventory *item)
{
// Can't carry more than 1 of each puzzle item in coop netplay
if (multiplayer && !deathmatch && item->GetClass() == GetClass())
{
return true;
}
return Super::HandlePickup (item);
}
bool APuzzleItem::Use (bool pickup)
{
if (P_UsePuzzleItem (Owner, PuzzleItemNumber))
{
return true;
}
// [RH] Always play the sound if the use fails.
S_Sound (Owner, CHAN_VOICE, "*puzzfail", 1, ATTN_IDLE);
C_MidPrintBold (GStrings("TXT_USEPUZZLEFAILED"));
return false;
}
bool APuzzleItem::ShouldStay ()
{
return !!multiplayer;
}
// Yorick's Skull -----------------------------------------------------------
class APuzzSkull : public APuzzleItem
{
DECLARE_ACTOR (APuzzSkull, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzSkull::States[] =
{
S_NORMAL (ASKU, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzSkull, Hexen, 9002, 76)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzskull)
PROP_Inventory_Icon ("ARTISKLL")
END_DEFAULTS
const char *APuzzSkull::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZSKULL");
}
// Heart of D'Sparil --------------------------------------------------------
class APuzzGemBig : public APuzzleItem
{
DECLARE_ACTOR (APuzzGemBig, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGemBig::States[] =
{
S_NORMAL (ABGM, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzGemBig, Hexen, 9003, 77)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgembig)
PROP_Inventory_Icon ("ARTIBGEM")
END_DEFAULTS
const char *APuzzGemBig::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEMBIG");
}
// Red Gem (Ruby Planet) ----------------------------------------------------
class APuzzGemRed : public APuzzleItem
{
DECLARE_ACTOR (APuzzGemRed, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGemRed::States[] =
{
S_NORMAL (AGMR, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzGemRed, Hexen, 9004, 78)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgemred)
PROP_Inventory_Icon ("ARTIGEMR")
END_DEFAULTS
const char *APuzzGemRed::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEMRED");
}
// Green Gem 1 (Emerald Planet) ---------------------------------------------
class APuzzGemGreen1 : public APuzzleItem
{
DECLARE_ACTOR (APuzzGemGreen1, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGemGreen1::States[] =
{
S_NORMAL (AGMG, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzGemGreen1, Hexen, 9005, 79)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgemgreen1)
PROP_Inventory_Icon ("ARTIGEMG")
END_DEFAULTS
const char *APuzzGemGreen1::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEMGREEN1");
}
// Green Gem 2 (Emerald Planet) ---------------------------------------------
class APuzzGemGreen2 : public APuzzleItem
{
DECLARE_ACTOR (APuzzGemGreen2, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGemGreen2::States[] =
{
S_NORMAL (AGG2, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzGemGreen2, Hexen, 9009, 80)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgemgreen2)
PROP_Inventory_Icon ("ARTIGMG2")
END_DEFAULTS
const char *APuzzGemGreen2::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEMGREEN2");
}
// Blue Gem 1 (Sapphire Planet) ---------------------------------------------
class APuzzGemBlue1 : public APuzzleItem
{
DECLARE_ACTOR (APuzzGemBlue1, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGemBlue1::States[] =
{
S_NORMAL (AGMB, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzGemBlue1, Hexen, 9006, 81)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgemblue1)
PROP_Inventory_Icon ("ARTIGEMB")
END_DEFAULTS
const char *APuzzGemBlue1::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEMBLUE1");
}
// Blue Gem 2 (Sapphire Planet) ---------------------------------------------
class APuzzGemBlue2 : public APuzzleItem
{
DECLARE_ACTOR (APuzzGemBlue2, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGemBlue2::States[] =
{
S_NORMAL (AGB2, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzGemBlue2, Hexen, 9010, 82)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgemblue2)
PROP_Inventory_Icon ("ARTIGMB2")
END_DEFAULTS
const char *APuzzGemBlue2::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEMBLUE2");
}
// Book 1 (Daemon Codex) ----------------------------------------------------
class APuzzBook1 : public APuzzleItem
{
DECLARE_ACTOR (APuzzBook1, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzBook1::States[] =
{
S_NORMAL (ABK1, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzBook1, Hexen, 9007, 83)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzbook1)
PROP_Inventory_Icon ("ARTIBOK1")
END_DEFAULTS
const char *APuzzBook1::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZBOOK1");
}
// Book 2 (Liber Oscura) ----------------------------------------------------
class APuzzBook2 : public APuzzleItem
{
DECLARE_ACTOR (APuzzBook2, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzBook2::States[] =
{
S_NORMAL (ABK2, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzBook2, Hexen, 9008, 84)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzbook2)
PROP_Inventory_Icon ("ARTIBOK2")
END_DEFAULTS
const char *APuzzBook2::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZBOOK2");
}
// Flame Mask ---------------------------------------------------------------
class APuzzFlameMask : public APuzzleItem
{
DECLARE_ACTOR (APuzzFlameMask, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzFlameMask::States[] =
{
S_NORMAL (ASK2, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzFlameMask, Hexen, 9014, 0)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzskull2)
PROP_Inventory_Icon ("ARTISKL2")
END_DEFAULTS
const char *APuzzFlameMask::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZSKULL2");
}
// Fighter Weapon (Glaive Seal) ---------------------------------------------
class APuzzFWeapon : public APuzzleItem
{
DECLARE_ACTOR (APuzzFWeapon, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzFWeapon::States[] =
{
S_NORMAL (AFWP, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzFWeapon, Hexen, 9015, 0)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzfweapon)
PROP_Inventory_Icon ("ARTIFWEP")
END_DEFAULTS
const char *APuzzFWeapon::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZFWEAPON");
}
// Cleric Weapon (Holy Relic) -----------------------------------------------
class APuzzCWeapon : public APuzzleItem
{
DECLARE_ACTOR (APuzzCWeapon, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzCWeapon::States[] =
{
S_NORMAL (ACWP, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzCWeapon, Hexen, 9016, 0)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzcweapon)
PROP_Inventory_Icon ("ARTICWEP")
END_DEFAULTS
const char *APuzzCWeapon::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZCWEAPON");
}
// Mage Weapon (Sigil of the Magus) -----------------------------------------
class APuzzMWeapon : public APuzzleItem
{
DECLARE_ACTOR (APuzzMWeapon, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzMWeapon::States[] =
{
S_NORMAL (AMWP, 'A', -1, NULL , NULL),
};
IMPLEMENT_ACTOR (APuzzMWeapon, Hexen, 9017, 0)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzmweapon)
PROP_Inventory_Icon ("ARTIMWEP")
END_DEFAULTS
const char *APuzzMWeapon::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZMWEAPON");
}
// Clock Gear 1 -------------------------------------------------------------
class APuzzGear1 : public APuzzleItem
{
DECLARE_ACTOR (APuzzGear1, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGear1::States[] =
{
S_BRIGHT (AGER, 'A', 4, NULL , &States[1]),
S_BRIGHT (AGER, 'B', 4, NULL , &States[2]),
S_BRIGHT (AGER, 'C', 4, NULL , &States[3]),
S_BRIGHT (AGER, 'D', 4, NULL , &States[4]),
S_BRIGHT (AGER, 'E', 4, NULL , &States[5]),
S_BRIGHT (AGER, 'F', 4, NULL , &States[6]),
S_BRIGHT (AGER, 'G', 4, NULL , &States[7]),
S_BRIGHT (AGER, 'H', 4, NULL , &States[0]),
};
IMPLEMENT_ACTOR (APuzzGear1, Hexen, 9018, 0)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgear1)
PROP_Inventory_Icon ("ARTIGEAR")
END_DEFAULTS
const char *APuzzGear1::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEAR");
}
// Clock Gear 2 -------------------------------------------------------------
class APuzzGear2 : public APuzzleItem
{
DECLARE_ACTOR (APuzzGear2, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGear2::States[] =
{
S_BRIGHT (AGR2, 'A', 4, NULL , &States[1]),
S_BRIGHT (AGR2, 'B', 4, NULL , &States[2]),
S_BRIGHT (AGR2, 'C', 4, NULL , &States[3]),
S_BRIGHT (AGR2, 'D', 4, NULL , &States[4]),
S_BRIGHT (AGR2, 'E', 4, NULL , &States[5]),
S_BRIGHT (AGR2, 'F', 4, NULL , &States[6]),
S_BRIGHT (AGR2, 'G', 4, NULL , &States[7]),
S_BRIGHT (AGR2, 'H', 4, NULL , &States[0]),
};
IMPLEMENT_ACTOR (APuzzGear2, Hexen, 9019, 0)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgear2)
PROP_Inventory_Icon ("ARTIGER2")
END_DEFAULTS
const char *APuzzGear2::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEAR");
}
// Clock Gear 3 -------------------------------------------------------------
class APuzzGear3 : public APuzzleItem
{
DECLARE_ACTOR (APuzzGear3, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGear3::States[] =
{
S_BRIGHT (AGR3, 'A', 4, NULL , &States[1]),
S_BRIGHT (AGR3, 'B', 4, NULL , &States[2]),
S_BRIGHT (AGR3, 'C', 4, NULL , &States[3]),
S_BRIGHT (AGR3, 'D', 4, NULL , &States[4]),
S_BRIGHT (AGR3, 'E', 4, NULL , &States[5]),
S_BRIGHT (AGR3, 'F', 4, NULL , &States[6]),
S_BRIGHT (AGR3, 'G', 4, NULL , &States[7]),
S_BRIGHT (AGR3, 'H', 4, NULL , &States[0]),
};
IMPLEMENT_ACTOR (APuzzGear3, Hexen, 9020, 0)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgear3)
PROP_Inventory_Icon ("ARTIGER3")
END_DEFAULTS
const char *APuzzGear3::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEAR");
}
// Clock Gear 4 -------------------------------------------------------------
class APuzzGear4 : public APuzzleItem
{
DECLARE_ACTOR (APuzzGear4, APuzzleItem)
public:
const char *PickupMessage ();
};
FState APuzzGear4::States[] =
{
S_BRIGHT (AGR4, 'A', 4, NULL , &States[1]),
S_BRIGHT (AGR4, 'B', 4, NULL , &States[2]),
S_BRIGHT (AGR4, 'C', 4, NULL , &States[3]),
S_BRIGHT (AGR4, 'D', 4, NULL , &States[4]),
S_BRIGHT (AGR4, 'E', 4, NULL , &States[5]),
S_BRIGHT (AGR4, 'F', 4, NULL , &States[6]),
S_BRIGHT (AGR4, 'G', 4, NULL , &States[7]),
S_BRIGHT (AGR4, 'H', 4, NULL , &States[0]),
};
IMPLEMENT_ACTOR (APuzzGear4, Hexen, 9021, 0)
PROP_SpawnState (0)
PROP_PuzzleItem_Number (puzzgear4)
PROP_Inventory_Icon ("ARTIGER4")
END_DEFAULTS
const char *APuzzGear4::PickupMessage ()
{
return GStrings("TXT_ARTIPUZZGEAR");
}