mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-10 23:01:50 +00:00
Removed all native components from AInventory.
This commit is contained in:
parent
d66516ec82
commit
5e4b366724
8 changed files with 75 additions and 206 deletions
|
@ -54,50 +54,6 @@
|
||||||
|
|
||||||
EXTERN_CVAR(Bool, sv_unlimited_pickup)
|
EXTERN_CVAR(Bool, sv_unlimited_pickup)
|
||||||
|
|
||||||
IMPLEMENT_CLASS(AInventory, false, true)
|
|
||||||
|
|
||||||
IMPLEMENT_POINTERS_START(AInventory)
|
|
||||||
IMPLEMENT_POINTER(Owner)
|
|
||||||
IMPLEMENT_POINTERS_END
|
|
||||||
|
|
||||||
DEFINE_FIELD_BIT(AInventory, ItemFlags, bPickupGood, IF_PICKUPGOOD)
|
|
||||||
DEFINE_FIELD_BIT(AInventory, ItemFlags, bCreateCopyMoved, IF_CREATECOPYMOVED)
|
|
||||||
DEFINE_FIELD_BIT(AInventory, ItemFlags, bInitEffectFailed, IF_INITEFFECTFAILED)
|
|
||||||
DEFINE_FIELD(AInventory, Owner)
|
|
||||||
DEFINE_FIELD(AInventory, Amount)
|
|
||||||
DEFINE_FIELD(AInventory, MaxAmount)
|
|
||||||
DEFINE_FIELD(AInventory, InterHubAmount)
|
|
||||||
DEFINE_FIELD(AInventory, RespawnTics)
|
|
||||||
DEFINE_FIELD(AInventory, Icon)
|
|
||||||
DEFINE_FIELD(AInventory, AltHUDIcon)
|
|
||||||
DEFINE_FIELD(AInventory, DropTime)
|
|
||||||
DEFINE_FIELD(AInventory, SpawnPointClass)
|
|
||||||
DEFINE_FIELD(AInventory, PickupFlash)
|
|
||||||
DEFINE_FIELD(AInventory, PickupSound)
|
|
||||||
|
|
||||||
//===========================================================================
|
|
||||||
//
|
|
||||||
// AInventory :: Serialize
|
|
||||||
//
|
|
||||||
//===========================================================================
|
|
||||||
|
|
||||||
void AInventory::Serialize(FSerializer &arc)
|
|
||||||
{
|
|
||||||
Super::Serialize (arc);
|
|
||||||
|
|
||||||
auto def = (AInventory*)GetDefault();
|
|
||||||
arc("owner", Owner)
|
|
||||||
("amount", Amount, def->Amount)
|
|
||||||
("maxamount", MaxAmount, def->MaxAmount)
|
|
||||||
("interhubamount", InterHubAmount, def->InterHubAmount)
|
|
||||||
("respawntics", RespawnTics, def->RespawnTics)
|
|
||||||
("itemflags", ItemFlags, def->ItemFlags)
|
|
||||||
("icon", Icon, def->Icon)
|
|
||||||
("althudicon", AltHUDIcon, def->AltHUDIcon)
|
|
||||||
("pickupsound", PickupSound, def->PickupSound)
|
|
||||||
("spawnpointclass", SpawnPointClass, def->SpawnPointClass)
|
|
||||||
("droptime", DropTime, def->DropTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
//
|
//
|
||||||
|
|
|
@ -26,69 +26,6 @@ struct visstyle_t
|
||||||
|
|
||||||
// A pickup is anything the player can pickup (i.e. weapons, ammo, powerups, etc)
|
// A pickup is anything the player can pickup (i.e. weapons, ammo, powerups, etc)
|
||||||
|
|
||||||
enum ItemFlag
|
|
||||||
{
|
|
||||||
IF_ACTIVATABLE = 1<<0, // can be activated
|
|
||||||
IF_ACTIVATED = 1<<1, // is currently activated
|
|
||||||
IF_PICKUPGOOD = 1<<2, // HandlePickup wants normal pickup FX to happen
|
|
||||||
IF_QUIET = 1<<3, // Don't give feedback when picking up
|
|
||||||
IF_AUTOACTIVATE = 1<<4, // Automatically activate item on pickup
|
|
||||||
IF_UNDROPPABLE = 1<<5, // Item cannot be removed unless done explicitly with RemoveInventory
|
|
||||||
IF_INVBAR = 1<<6, // Item appears in the inventory bar
|
|
||||||
IF_HUBPOWER = 1<<7, // Powerup is kept when moving in a hub
|
|
||||||
IF_UNTOSSABLE = 1<<8, // The player cannot manually drop the item
|
|
||||||
IF_ADDITIVETIME = 1<<9, // when picked up while another item is active, time is added instead of replaced.
|
|
||||||
IF_ALWAYSPICKUP = 1<<10, // For IF_AUTOACTIVATE, MaxAmount=0 items: Always "pick up", even if it doesn't do anything
|
|
||||||
IF_FANCYPICKUPSOUND = 1<<11, // Play pickup sound in "surround" mode
|
|
||||||
IF_BIGPOWERUP = 1<<12, // Affected by RESPAWN_SUPER dmflag
|
|
||||||
IF_KEEPDEPLETED = 1<<13, // Items with this flag are retained even when they run out.
|
|
||||||
IF_IGNORESKILL = 1<<14, // Ignores any skill related multiplicators when giving this item.
|
|
||||||
IF_CREATECOPYMOVED = 1<<15, // CreateCopy changed the owner (copy's Owner field holds new owner).
|
|
||||||
IF_INITEFFECTFAILED = 1<<16, // CreateCopy tried to activate a powerup and activation failed (can happen with PowerMorph)
|
|
||||||
IF_NOATTENPICKUPSOUND = 1<<17, // Play pickup sound with ATTN_NONE
|
|
||||||
IF_PERSISTENTPOWER = 1<<18, // Powerup is kept when travelling between levels
|
|
||||||
IF_RESTRICTABSOLUTELY = 1<<19, // RestrictedTo and ForbiddenTo do not allow pickup in any form by other classes
|
|
||||||
IF_NEVERRESPAWN = 1<<20, // Never, ever respawns
|
|
||||||
IF_NOSCREENFLASH = 1<<21, // No pickup flash on the player's screen
|
|
||||||
IF_TOSSED = 1<<22, // Was spawned by P_DropItem (i.e. as a monster drop)
|
|
||||||
IF_ALWAYSRESPAWN = 1<<23, // Always respawn, regardless of dmflag
|
|
||||||
IF_TRANSFER = 1<<24, // All inventory items that the inventory item contains is also transfered to the pickuper
|
|
||||||
IF_NOTELEPORTFREEZE = 1<<25, // does not 'freeze' the player right after teleporting.
|
|
||||||
IF_NOSCREENBLINK = 1<<26, // Does not blink the screen overlay when expiring.
|
|
||||||
IF_ISHEALTH = 1<<27, // for the DM flag so that it can recognize items that are not obviously health givers.
|
|
||||||
IF_ISARMOR = 1<<28, // for the DM flag so that it can recognize items that are not obviously armor givers.
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef TFlags<ItemFlag> InvFlags;
|
|
||||||
//typedef TFlags<ItemFlag2> ItemFlags2;
|
|
||||||
DEFINE_TFLAGS_OPERATORS(InvFlags)
|
|
||||||
//DEFINE_TFLAGS_OPERATORS(ItemFlags2)
|
|
||||||
|
|
||||||
class AInventory : public AActor
|
|
||||||
{
|
|
||||||
DECLARE_CLASS(AInventory, AActor)
|
|
||||||
HAS_OBJECT_POINTERS
|
|
||||||
public:
|
|
||||||
|
|
||||||
virtual void Serialize(FSerializer &arc) override;
|
|
||||||
//virtual void Tick() override;
|
|
||||||
|
|
||||||
TObjPtr<AActor*> Owner; // Who owns this item? NULL if it's still a pickup.
|
|
||||||
int Amount; // Amount of item this instance has
|
|
||||||
int MaxAmount; // Max amount of item this instance can have
|
|
||||||
int InterHubAmount; // Amount of item that can be kept between hubs or levels
|
|
||||||
int RespawnTics; // Tics from pickup time to respawn time
|
|
||||||
FTextureID Icon; // Icon to show on status bar or HUD
|
|
||||||
int DropTime; // Countdown after dropping
|
|
||||||
PClassActor *SpawnPointClass; // For respawning like Heretic's mace
|
|
||||||
FTextureID AltHUDIcon;
|
|
||||||
|
|
||||||
InvFlags ItemFlags;
|
|
||||||
PClassActor *PickupFlash; // actor to spawn as pickup flash
|
|
||||||
|
|
||||||
FSoundIDNoInit PickupSound;
|
|
||||||
};
|
|
||||||
|
|
||||||
bool CallTryPickup(AActor *item, AActor *toucher, AActor **toucher_return = nullptr);
|
bool CallTryPickup(AActor *item, AActor *toucher, AActor **toucher_return = nullptr);
|
||||||
void DepleteOrDestroy(AActor *item); // virtual on the script side.
|
void DepleteOrDestroy(AActor *item); // virtual on the script side.
|
||||||
|
|
||||||
|
|
|
@ -219,20 +219,19 @@ FxExpression *ParseParameter(FScanner &sc, PClassActor *cls, PType *type);
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
DEPF_UNUSED,
|
DEPF_UNUSED = 0,
|
||||||
DEPF_FIREDAMAGE,
|
DEPF_FIREDAMAGE = 1,
|
||||||
DEPF_ICEDAMAGE,
|
DEPF_ICEDAMAGE = 2,
|
||||||
DEPF_LOWGRAVITY,
|
DEPF_LOWGRAVITY = 3,
|
||||||
DEPF_LONGMELEERANGE,
|
DEPF_LONGMELEERANGE = 4,
|
||||||
DEPF_SHORTMISSILERANGE,
|
DEPF_SHORTMISSILERANGE = 5,
|
||||||
DEPF_PICKUPFLASH,
|
DEPF_PICKUPFLASH = 6,
|
||||||
DEPF_QUARTERGRAVITY,
|
DEPF_QUARTERGRAVITY = 7,
|
||||||
DEPF_FIRERESIST,
|
DEPF_FIRERESIST = 8,
|
||||||
DEPF_HERETICBOUNCE,
|
DEPF_HERETICBOUNCE = 9,
|
||||||
DEPF_HEXENBOUNCE,
|
DEPF_HEXENBOUNCE = 10,
|
||||||
DEPF_DOOMBOUNCE,
|
DEPF_DOOMBOUNCE = 11,
|
||||||
DEPF_INTERHUBSTRIP,
|
DEPF_INTERHUBSTRIP = 12,
|
||||||
DEPF_NOTRAIL,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Types of old style decorations
|
// Types of old style decorations
|
||||||
|
|
|
@ -412,33 +412,6 @@ static FFlagDef MoreFlagDefs[] =
|
||||||
static FFlagDef InventoryFlagDefs[] =
|
static FFlagDef InventoryFlagDefs[] =
|
||||||
{
|
{
|
||||||
// Inventory flags
|
// Inventory flags
|
||||||
DEFINE_FLAG(IF, QUIET, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, AUTOACTIVATE, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, UNDROPPABLE, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, INVBAR, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, HUBPOWER, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, UNTOSSABLE, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, ADDITIVETIME, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, ALWAYSPICKUP, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, FANCYPICKUPSOUND, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, BIGPOWERUP, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, KEEPDEPLETED, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, IGNORESKILL, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, NOATTENPICKUPSOUND, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, PERSISTENTPOWER, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, RESTRICTABSOLUTELY, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, NEVERRESPAWN, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, NOSCREENFLASH, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, TOSSED, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, ALWAYSRESPAWN, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, TRANSFER, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, NOTELEPORTFREEZE, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, NOSCREENBLINK, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, ISARMOR, AInventory, ItemFlags),
|
|
||||||
DEFINE_FLAG(IF, ISHEALTH, AInventory, ItemFlags),
|
|
||||||
|
|
||||||
DEFINE_DUMMY_FLAG(FORCERESPAWNINSURVIVAL, false),
|
|
||||||
|
|
||||||
DEFINE_DEPRECATED_FLAG(PICKUPFLASH),
|
DEFINE_DEPRECATED_FLAG(PICKUPFLASH),
|
||||||
DEFINE_DEPRECATED_FLAG(INTERHUBSTRIP),
|
DEFINE_DEPRECATED_FLAG(INTERHUBSTRIP),
|
||||||
};
|
};
|
||||||
|
@ -463,18 +436,11 @@ static FFlagDef DynLightFlagDefs[] =
|
||||||
DEFINE_FLAG(LF, SPOT, ADynamicLight, lightflags),
|
DEFINE_FLAG(LF, SPOT, ADynamicLight, lightflags),
|
||||||
};
|
};
|
||||||
|
|
||||||
static FFlagDef PowerSpeedFlagDefs[] =
|
|
||||||
{
|
|
||||||
// PowerSpeed flags
|
|
||||||
DEFINE_DEPRECATED_FLAG(NOTRAIL),
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct FFlagList { const PClass * const *Type; FFlagDef *Defs; int NumDefs; int Use; } FlagLists[] =
|
static const struct FFlagList { const PClass * const *Type; FFlagDef *Defs; int NumDefs; int Use; } FlagLists[] =
|
||||||
{
|
{
|
||||||
{ &RUNTIME_CLASS_CASTLESS(AActor), ActorFlagDefs, countof(ActorFlagDefs), 3 }, // -1 to account for the terminator
|
{ &RUNTIME_CLASS_CASTLESS(AActor), ActorFlagDefs, countof(ActorFlagDefs), 3 }, // -1 to account for the terminator
|
||||||
{ &RUNTIME_CLASS_CASTLESS(AActor), MoreFlagDefs, countof(MoreFlagDefs), 1 },
|
{ &RUNTIME_CLASS_CASTLESS(AActor), MoreFlagDefs, countof(MoreFlagDefs), 1 },
|
||||||
{ &RUNTIME_CLASS_CASTLESS(AActor), InternalActorFlagDefs, countof(InternalActorFlagDefs), 2 },
|
{ &RUNTIME_CLASS_CASTLESS(AActor), InternalActorFlagDefs, countof(InternalActorFlagDefs), 2 },
|
||||||
{ &RUNTIME_CLASS_CASTLESS(AInventory), InventoryFlagDefs, countof(InventoryFlagDefs), 3 },
|
|
||||||
{ &RUNTIME_CLASS_CASTLESS(APlayerPawn), PlayerPawnFlagDefs, countof(PlayerPawnFlagDefs), 3 },
|
{ &RUNTIME_CLASS_CASTLESS(APlayerPawn), PlayerPawnFlagDefs, countof(PlayerPawnFlagDefs), 3 },
|
||||||
{ &RUNTIME_CLASS_CASTLESS(ADynamicLight),DynLightFlagDefs, countof(DynLightFlagDefs), 3 },
|
{ &RUNTIME_CLASS_CASTLESS(ADynamicLight),DynLightFlagDefs, countof(DynLightFlagDefs), 3 },
|
||||||
};
|
};
|
||||||
|
@ -531,9 +497,9 @@ FFlagDef *FindFlag (const PClass *type, const char *part1, const char *part2, bo
|
||||||
{
|
{
|
||||||
forInternalFlags.fieldsize = 4;
|
forInternalFlags.fieldsize = 4;
|
||||||
forInternalFlags.name = "";
|
forInternalFlags.name = "";
|
||||||
forInternalFlags.flagbit = field->Offset? 1 << field->bitval : DEPF_UNUSED;
|
forInternalFlags.flagbit = field->Offset? 1 << field->bitval : field->bitval;
|
||||||
forInternalFlags.structoffset = field->Offset? (int)field->Offset->Offset : -1;
|
forInternalFlags.structoffset = field->Offset? (int)field->Offset->Offset : -1;
|
||||||
forInternalFlags.varflags = 0;
|
forInternalFlags.varflags = field->Offset == nullptr && field->bitval > 0? VARF_Deprecated : 0;
|
||||||
return &forInternalFlags;
|
return &forInternalFlags;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -549,9 +515,9 @@ FFlagDef *FindFlag (const PClass *type, const char *part1, const char *part2, bo
|
||||||
{
|
{
|
||||||
forInternalFlags.fieldsize = 4;
|
forInternalFlags.fieldsize = 4;
|
||||||
forInternalFlags.name = "";
|
forInternalFlags.name = "";
|
||||||
forInternalFlags.flagbit = field->Offset ? 1 << field->bitval : DEPF_UNUSED;
|
forInternalFlags.flagbit = field->Offset ? 1 << field->bitval : field->bitval;
|
||||||
forInternalFlags.structoffset = field->Offset ? (int)field->Offset->Offset : -1;
|
forInternalFlags.structoffset = field->Offset ? (int)field->Offset->Offset : -1;
|
||||||
forInternalFlags.varflags = 0;
|
forInternalFlags.varflags = field->Offset == nullptr && field->bitval > 0? VARF_Deprecated : 0;
|
||||||
return &forInternalFlags;
|
return &forInternalFlags;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -595,11 +561,6 @@ FFlagDef *FindFlag (const PClass *type, const char *part1, const char *part2, bo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle that lone PowerSpeed flag - this should be more generalized but it's just this one flag and unlikely to become more so an explicit check will do.
|
|
||||||
if ((!stricmp(part1, "NOTRAIL") && !strict) || (!stricmp(part1, "POWERSPEED") && !stricmp(part2, "NOTRAIL")))
|
|
||||||
{
|
|
||||||
return &PowerSpeedFlagDefs[0];
|
|
||||||
}
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -320,21 +320,6 @@ void HandleDeprecatedFlags(AActor *defaults, PClassActor *info, bool set, int in
|
||||||
case DEPF_INTERHUBSTRIP: // Old system was 0 or 1, so if the flag is cleared, assume 1.
|
case DEPF_INTERHUBSTRIP: // Old system was 0 or 1, so if the flag is cleared, assume 1.
|
||||||
defaults->IntVar(NAME_InterHubAmount) = set ? 0 : 1;
|
defaults->IntVar(NAME_InterHubAmount) = set ? 0 : 1;
|
||||||
break;
|
break;
|
||||||
case DEPF_NOTRAIL:
|
|
||||||
{
|
|
||||||
FString propname = "@property@powerspeed.notrail";
|
|
||||||
FName name(propname, true);
|
|
||||||
if (name != NAME_None)
|
|
||||||
{
|
|
||||||
auto propp = dyn_cast<PProperty>(info->FindSymbol(name, true));
|
|
||||||
if (propp != nullptr)
|
|
||||||
{
|
|
||||||
*((char*)defaults + propp->Variables[0]->Offset) = set ? 1 : 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break; // silence GCC
|
break; // silence GCC
|
||||||
|
@ -1089,7 +1074,7 @@ DEFINE_PROPERTY(distancecheck, S, Actor)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_CLASS_PROPERTY(restrictedto, Ssssssssssssssssssss, Inventory)
|
DEFINE_SCRIPTED_PROPERTY(restrictedto, Ssssssssssssssssssss, Inventory)
|
||||||
{
|
{
|
||||||
auto restrictarray = (TArray<PClassActor*>*)defaults->ScriptVar(NAME_RestrictedToPlayerClass, nullptr);
|
auto restrictarray = (TArray<PClassActor*>*)defaults->ScriptVar(NAME_RestrictedToPlayerClass, nullptr);
|
||||||
|
|
||||||
|
@ -1105,7 +1090,7 @@ DEFINE_CLASS_PROPERTY(restrictedto, Ssssssssssssssssssss, Inventory)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_CLASS_PROPERTY(forbiddento, Ssssssssssssssssssss, Inventory)
|
DEFINE_SCRIPTED_PROPERTY(forbiddento, Ssssssssssssssssssss, Inventory)
|
||||||
{
|
{
|
||||||
auto forbidarray = (TArray<PClassActor*>*)defaults->ScriptVar(NAME_ForbiddenToPlayerClass, nullptr);
|
auto forbidarray = (TArray<PClassActor*>*)defaults->ScriptVar(NAME_ForbiddenToPlayerClass, nullptr);
|
||||||
|
|
||||||
|
@ -1147,7 +1132,7 @@ static void SetIcon(FTextureID &icon, Baggage &bag, const char *i)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_CLASS_PROPERTY(icon, S, Inventory)
|
DEFINE_SCRIPTED_PROPERTY(icon, S, Inventory)
|
||||||
{
|
{
|
||||||
PROP_STRING_PARM(i, 0);
|
PROP_STRING_PARM(i, 0);
|
||||||
SetIcon(defaults->TextureIDVar(NAME_Icon), bag, i);
|
SetIcon(defaults->TextureIDVar(NAME_Icon), bag, i);
|
||||||
|
@ -1156,7 +1141,7 @@ DEFINE_CLASS_PROPERTY(icon, S, Inventory)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_CLASS_PROPERTY(althudicon, S, Inventory)
|
DEFINE_SCRIPTED_PROPERTY(althudicon, S, Inventory)
|
||||||
{
|
{
|
||||||
PROP_STRING_PARM(i, 0);
|
PROP_STRING_PARM(i, 0);
|
||||||
SetIcon(defaults->TextureIDVar(NAME_AltHUDIcon), bag, i);
|
SetIcon(defaults->TextureIDVar(NAME_AltHUDIcon), bag, i);
|
||||||
|
@ -1165,7 +1150,7 @@ DEFINE_CLASS_PROPERTY(althudicon, S, Inventory)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_CLASS_PROPERTY(defmaxamount, 0, Inventory)
|
DEFINE_SCRIPTED_PROPERTY(defmaxamount, 0, Inventory)
|
||||||
{
|
{
|
||||||
defaults->IntVar(NAME_MaxAmount) = gameinfo.definventorymaxamount;
|
defaults->IntVar(NAME_MaxAmount) = gameinfo.definventorymaxamount;
|
||||||
}
|
}
|
||||||
|
@ -1173,7 +1158,7 @@ DEFINE_CLASS_PROPERTY(defmaxamount, 0, Inventory)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
// Dummy for Skulltag compatibility...
|
// Dummy for Skulltag compatibility...
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_CLASS_PROPERTY(pickupannouncerentry, S, Inventory)
|
DEFINE_SCRIPTED_PROPERTY(pickupannouncerentry, S, Inventory)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1216,7 +1201,7 @@ DEFINE_SCRIPTED_PROPERTY(preferredskin, S, Weapon)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_CLASS_PROPERTY_PREFIX(powerup, color, C_f, Inventory)
|
DEFINE_SCRIPTED_PROPERTY_PREFIX(powerup, color, C_f, Inventory)
|
||||||
{
|
{
|
||||||
static const char *specialcolormapnames[] = {
|
static const char *specialcolormapnames[] = {
|
||||||
"INVERSEMAP", "GOLDMAP", "REDMAP", "GREENMAP", "BLUEMAP", NULL };
|
"INVERSEMAP", "GOLDMAP", "REDMAP", "GREENMAP", "BLUEMAP", NULL };
|
||||||
|
@ -1271,7 +1256,7 @@ DEFINE_CLASS_PROPERTY_PREFIX(powerup, color, C_f, Inventory)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_CLASS_PROPERTY_PREFIX(powerup, colormap, FFFfff, Inventory)
|
DEFINE_SCRIPTED_PROPERTY_PREFIX(powerup, colormap, FFFfff, Inventory)
|
||||||
{
|
{
|
||||||
PalEntry BlendColor;
|
PalEntry BlendColor;
|
||||||
|
|
||||||
|
@ -1308,7 +1293,7 @@ DEFINE_CLASS_PROPERTY_PREFIX(powerup, colormap, FFFfff, Inventory)
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
DEFINE_CLASS_PROPERTY_PREFIX(powerup, duration, I, Inventory)
|
DEFINE_SCRIPTED_PROPERTY_PREFIX(powerup, duration, I, Inventory)
|
||||||
{
|
{
|
||||||
if (!info->IsDescendantOf(NAME_Powerup) && !info->IsDescendantOf(NAME_PowerupGiver))
|
if (!info->IsDescendantOf(NAME_Powerup) && !info->IsDescendantOf(NAME_PowerupGiver))
|
||||||
{
|
{
|
||||||
|
|
|
@ -87,11 +87,11 @@ const char *GetVersionString();
|
||||||
#define SAVEGAME_EXT "zds"
|
#define SAVEGAME_EXT "zds"
|
||||||
|
|
||||||
// MINSAVEVER is the minimum level snapshot version that can be loaded.
|
// MINSAVEVER is the minimum level snapshot version that can be loaded.
|
||||||
#define MINSAVEVER 4553
|
#define MINSAVEVER 4554
|
||||||
|
|
||||||
// Use 4500 as the base git save version, since it's higher than the
|
// Use 4500 as the base git save version, since it's higher than the
|
||||||
// SVN revision ever got.
|
// SVN revision ever got.
|
||||||
#define SAVEVER 4553
|
#define SAVEVER 4554
|
||||||
|
|
||||||
// This is so that derivates can use the same savegame versions without worrying about engine compatibility
|
// This is so that derivates can use the same savegame versions without worrying about engine compatibility
|
||||||
#define GAMESIG "GZDOOM"
|
#define GAMESIG "GZDOOM"
|
||||||
|
|
|
@ -5,25 +5,26 @@ struct VisStyle
|
||||||
int RenderStyle;
|
int RenderStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
class Inventory : Actor native
|
class Inventory : Actor
|
||||||
{
|
{
|
||||||
const BLINKTHRESHOLD = (4*32);
|
const BLINKTHRESHOLD = (4*32);
|
||||||
const BONUSADD = 6;
|
const BONUSADD = 6;
|
||||||
|
|
||||||
native Actor Owner; // Who owns this item? NULL if it's still a pickup.
|
deprecated("3.7") private int ItemFlags;
|
||||||
native int Amount; // Amount of item this instance has
|
Actor Owner; // Who owns this item? NULL if it's still a pickup.
|
||||||
native int MaxAmount; // Max amount of item this instance can have
|
int Amount; // Amount of item this instance has
|
||||||
native int InterHubAmount; // Amount of item that can be kept between hubs or levels
|
int MaxAmount; // Max amount of item this instance can have
|
||||||
native int RespawnTics; // Tics from pickup time to respawn time
|
int InterHubAmount; // Amount of item that can be kept between hubs or levels
|
||||||
native TextureID Icon; // Icon to show on status bar or HUD
|
int RespawnTics; // Tics from pickup time to respawn time
|
||||||
native TextureID AltHUDIcon;
|
TextureID Icon; // Icon to show on status bar or HUD
|
||||||
native int DropTime; // Countdown after dropping
|
TextureID AltHUDIcon;
|
||||||
native Class<Actor> SpawnPointClass; // For respawning like Heretic's mace
|
int DropTime; // Countdown after dropping
|
||||||
native Class<Actor> PickupFlash; // actor to spawn as pickup flash
|
Class<Actor> SpawnPointClass; // For respawning like Heretic's mace
|
||||||
native Sound PickupSound;
|
Class<Actor> PickupFlash; // actor to spawn as pickup flash
|
||||||
native bool bPickupGood;
|
Sound PickupSound;
|
||||||
native bool bCreateCopyMoved;
|
bool bPickupGood;
|
||||||
native bool bInitEffectFailed;
|
bool bCreateCopyMoved;
|
||||||
|
bool bInitEffectFailed;
|
||||||
meta String PickupMsg;
|
meta String PickupMsg;
|
||||||
meta int GiveQuest;
|
meta int GiveQuest;
|
||||||
meta array<class<Actor> > ForbiddenToPlayerClass;
|
meta array<class<Actor> > ForbiddenToPlayerClass;
|
||||||
|
@ -38,7 +39,36 @@ class Inventory : Actor native
|
||||||
property PickupSound: PickupSound;
|
property PickupSound: PickupSound;
|
||||||
property UseSound: UseSound;
|
property UseSound: UseSound;
|
||||||
property RespawnTics: RespawnTics;
|
property RespawnTics: RespawnTics;
|
||||||
|
|
||||||
|
flagdef Quiet: ItemFlags, 0;
|
||||||
|
flagdef Autoactivate: ItemFlags, 1;
|
||||||
|
flagdef Undroppable: ItemFlags, 2;
|
||||||
|
flagdef Invbar: ItemFlags, 3;
|
||||||
|
flagdef HubPower: ItemFlags, 4;
|
||||||
|
flagdef Untossable: ItemFlags, 5;
|
||||||
|
flagdef AdditiveTime: ItemFlags, 6;
|
||||||
|
flagdef FancyPickupSound: ItemFlags, 7;
|
||||||
|
flagdef BigPowerup: ItemFlags, 8;
|
||||||
|
flagdef KeepDepleted: ItemFlags, 9;
|
||||||
|
flagdef IgnoreSkill: ItemFlags, 10;
|
||||||
|
flagdef NoAttenPickupSound: ItemFlags, 11;
|
||||||
|
flagdef PersistentPower : ItemFlags, 12;
|
||||||
|
flagdef RestrictAbsolutely: ItemFlags, 13;
|
||||||
|
flagdef NeverRespawn: ItemFlags, 14;
|
||||||
|
flagdef NoScreenFlash: ItemFlags, 15;
|
||||||
|
flagdef Tossed: ItemFlags, 16;
|
||||||
|
flagdef AlwaysRespawn: ItemFlags, 17;
|
||||||
|
flagdef Transfer: ItemFlags, 18;
|
||||||
|
flagdef NoTeleportFreeze: ItemFlags, 19;
|
||||||
|
flagdef NoScreenBlink: ItemFlags, 20;
|
||||||
|
flagdef IsArmor: ItemFlags, 21;
|
||||||
|
flagdef IsHealth: ItemFlags, 22;
|
||||||
|
flagdef AlwaysPickup: ItemFlags, 23;
|
||||||
|
|
||||||
|
flagdef ForceRespawnInSurvival: none, 0;
|
||||||
|
flagdef PickupFlash: none, 6;
|
||||||
|
flagdef InterHubStrip: none, 12;
|
||||||
|
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
Inventory.Amount 1;
|
Inventory.Amount 1;
|
||||||
|
|
|
@ -1157,6 +1157,7 @@ class PowerSpeed : Powerup
|
||||||
int NoTrail;
|
int NoTrail;
|
||||||
|
|
||||||
Property NoTrail: NoTrail;
|
Property NoTrail: NoTrail;
|
||||||
|
FlagDef NoTrail: NoTrail, 0; // This was once a flag, not a property.
|
||||||
|
|
||||||
Default
|
Default
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue