- Removed the old meta data system. All meta data is now stored in subclasses of PClass. This
should simplify scripting, since it means that meta fields can be treated (mostly) the same as normal fields. SVN r2242 (scripting)
This commit is contained in:
parent
f88f601230
commit
604b5ef673
62 changed files with 902 additions and 802 deletions
|
|
@ -442,7 +442,7 @@ void R_InitSkins (void)
|
|||
int lastlump;
|
||||
int aliasid;
|
||||
bool remove;
|
||||
const PClass *basetype, *transtype;
|
||||
PClassPlayerPawn *basetype, *transtype;
|
||||
|
||||
key[sizeof(key)-1] = 0;
|
||||
i = PlayerClasses.Size () - 1;
|
||||
|
|
@ -527,11 +527,11 @@ void R_InitSkins (void)
|
|||
else if (0 == stricmp (key, "game"))
|
||||
{
|
||||
if (gameinfo.gametype == GAME_Heretic)
|
||||
basetype = PClass::FindClass (NAME_HereticPlayer);
|
||||
basetype = static_cast<PClassPlayerPawn *>(PClass::FindClass (NAME_HereticPlayer));
|
||||
else if (gameinfo.gametype == GAME_Strife)
|
||||
basetype = PClass::FindClass (NAME_StrifePlayer);
|
||||
basetype = static_cast<PClassPlayerPawn *>(PClass::FindClass (NAME_StrifePlayer));
|
||||
else
|
||||
basetype = PClass::FindClass (NAME_DoomPlayer);
|
||||
basetype = static_cast<PClassPlayerPawn *>(PClass::FindClass (NAME_DoomPlayer));
|
||||
|
||||
transtype = basetype;
|
||||
|
||||
|
|
@ -539,7 +539,7 @@ void R_InitSkins (void)
|
|||
{
|
||||
if (gameinfo.gametype & GAME_DoomChex)
|
||||
{
|
||||
transtype = PClass::FindClass (NAME_HereticPlayer);
|
||||
transtype = static_cast<PClassPlayerPawn *>(PClass::FindClass (NAME_HereticPlayer));
|
||||
skins[i].othergame = true;
|
||||
}
|
||||
else if (gameinfo.gametype != GAME_Heretic)
|
||||
|
|
@ -558,7 +558,7 @@ void R_InitSkins (void)
|
|||
{
|
||||
if (gameinfo.gametype == GAME_Heretic)
|
||||
{
|
||||
transtype = PClass::FindClass (NAME_DoomPlayer);
|
||||
transtype = static_cast<PClassPlayerPawn *>(PClass::FindClass (NAME_DoomPlayer));
|
||||
skins[i].othergame = true;
|
||||
}
|
||||
else if (!(gameinfo.gametype & GAME_DoomChex))
|
||||
|
|
@ -634,12 +634,12 @@ void R_InitSkins (void)
|
|||
{
|
||||
if (gameinfo.gametype & GAME_DoomChex)
|
||||
{
|
||||
basetype = transtype = PClass::FindClass (NAME_DoomPlayer);
|
||||
basetype = transtype = static_cast<PClassPlayerPawn *>(PClass::FindClass (NAME_DoomPlayer));
|
||||
}
|
||||
else if (gameinfo.gametype == GAME_Heretic)
|
||||
{
|
||||
basetype = PClass::FindClass (NAME_HereticPlayer);
|
||||
transtype = PClass::FindClass (NAME_DoomPlayer);
|
||||
basetype = static_cast<PClassPlayerPawn *>(PClass::FindClass (NAME_HereticPlayer));
|
||||
transtype = static_cast<PClassPlayerPawn *>(PClass::FindClass (NAME_DoomPlayer));
|
||||
skins[i].othergame = true;
|
||||
}
|
||||
else
|
||||
|
|
@ -650,17 +650,18 @@ void R_InitSkins (void)
|
|||
|
||||
if (!remove)
|
||||
{
|
||||
skins[i].range0start = transtype->Meta.GetMetaInt (APMETA_ColorRange) & 0xff;
|
||||
skins[i].range0end = transtype->Meta.GetMetaInt (APMETA_ColorRange) >> 8;
|
||||
skins[i].range0start = transtype->ColorRangeStart;
|
||||
skins[i].range0end = transtype->ColorRangeEnd;
|
||||
|
||||
remove = true;
|
||||
for (j = 0; j < (int)PlayerClasses.Size (); j++)
|
||||
{
|
||||
const PClass *type = PlayerClasses[j].Type;
|
||||
PClassPlayerPawn *type = PlayerClasses[j].Type;
|
||||
|
||||
if (type->IsDescendantOf (basetype) &&
|
||||
GetDefaultByType (type)->SpawnState->sprite == GetDefaultByType (basetype)->SpawnState->sprite &&
|
||||
type->Meta.GetMetaInt (APMETA_ColorRange) == basetype->Meta.GetMetaInt (APMETA_ColorRange))
|
||||
type->ColorRangeStart == basetype->ColorRangeStart &&
|
||||
type->ColorRangeEnd == basetype->ColorRangeEnd)
|
||||
{
|
||||
PlayerClasses[j].Skins.Push ((int)i);
|
||||
remove = false;
|
||||
|
|
@ -871,9 +872,9 @@ void R_InitSprites ()
|
|||
memset (skins, 0, sizeof(*skins) * numskins);
|
||||
for (i = 0; i < numskins; i++)
|
||||
{ // Assume Doom skin by default
|
||||
const PClass *type = PlayerClasses[0].Type;
|
||||
skins[i].range0start = type->Meta.GetMetaInt (APMETA_ColorRange) & 255;
|
||||
skins[i].range0end = type->Meta.GetMetaInt (APMETA_ColorRange) >> 8;
|
||||
PClassPlayerPawn *type = PlayerClasses[0].Type;
|
||||
skins[i].range0start = type->ColorRangeStart;
|
||||
skins[i].range0end = type->ColorRangeEnd;
|
||||
skins[i].ScaleX = GetDefaultByType (type)->scaleX;
|
||||
skins[i].ScaleY = GetDefaultByType (type)->scaleY;
|
||||
}
|
||||
|
|
@ -886,11 +887,11 @@ void R_InitSprites ()
|
|||
// [GRB] Each player class has its own base skin
|
||||
for (i = 0; i < PlayerClasses.Size (); i++)
|
||||
{
|
||||
const PClass *basetype = PlayerClasses[i].Type;
|
||||
const char *pclassface = basetype->Meta.GetMetaString (APMETA_Face);
|
||||
PClassPlayerPawn *basetype = PlayerClasses[i].Type;
|
||||
FString pclassface = basetype->Face;
|
||||
|
||||
strcpy (skins[i].name, "Base");
|
||||
if (pclassface == NULL || strcmp(pclassface, "None") == 0)
|
||||
if (pclassface.IsEmpty() || strcmp(pclassface, "None") == 0)
|
||||
{
|
||||
skins[i].face[0] = 'S';
|
||||
skins[i].face[1] = 'T';
|
||||
|
|
@ -901,8 +902,8 @@ void R_InitSprites ()
|
|||
{
|
||||
strcpy(skins[i].face, pclassface);
|
||||
}
|
||||
skins[i].range0start = basetype->Meta.GetMetaInt (APMETA_ColorRange) & 255;
|
||||
skins[i].range0end = basetype->Meta.GetMetaInt (APMETA_ColorRange) >> 8;
|
||||
skins[i].range0start = basetype->ColorRangeStart;
|
||||
skins[i].range0end = basetype->ColorRangeEnd;
|
||||
skins[i].ScaleX = GetDefaultByType (basetype)->scaleX;
|
||||
skins[i].ScaleY = GetDefaultByType (basetype)->scaleY;
|
||||
skins[i].sprite = GetDefaultByType (basetype)->SpawnState->sprite;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue