diff --git a/api-base-Thinker.md b/api-base-Thinker.md index d588338..63ee935 100644 --- a/api-base-Thinker.md +++ b/api-base-Thinker.md @@ -54,6 +54,8 @@ class Thinker : Object play { const TICRATE; + LevelLocals Level; + void ChangeStatNum(int stat); virtual void PostBeginPlay(); @@ -67,6 +69,10 @@ class Thinker : Object play The number of game ticks in a second. This value is always `int(35)`. +- `Level` + + The level this `Thinker` is in, which may differ from another one's. + - `ChangeStatNum` Changes the statnum of this `Thinker`. diff --git a/api-drawing-TexMan.md b/api-drawing-TexMan.md index e703523..d86d134 100644 --- a/api-drawing-TexMan.md +++ b/api-drawing-TexMan.md @@ -12,8 +12,10 @@ struct TexMan static vector2 GetScaledOffset(textureid tex); static vector2 GetScaledSize(textureid tex); static int, int GetSize(textureid tex); - static void ReplaceTextures(string from, string to, int flags); static void SetCameraToTexture(Actor viewpoint, string texture, double fov); + static bool OkForLocalization(textureid patch, string textSubstitute); + + deprecated("3.8") static void ReplaceTextures(string from, string to, int flags); } ``` @@ -47,6 +49,7 @@ struct TexMan | ---- | ----------- | | `TexMan.AllowSkins` | Allows `SkinGraphic`s to be returned under normal circumstances. | | `TexMan.DontCreate` | Will never create a new texture when searching. | + | `TexMan.Localize` | TODO . | | `TexMan.Overridable` | Allows overriding of this texture by for instance `TEXTURES`. | | `TexMan.ReturnFirst` | Allows returning the `FirstDefined` "null" texture under normal circumstances. | | `TexMan.ShortNameOnly` | Will force use of a short name when searching. | @@ -76,8 +79,20 @@ struct TexMan Returns the width and height of a `textureid`. +- `SetCameraToTexture` + + Sets the camera texture (as defined in `ANIMDEFS`) `texture` to the + viewpoint of `viewpoint` with a fov of `fov`. + +- `OkForLocalization` + + TODO + - `ReplaceTextures` + Note: This function is deprecated and `LevelLocals::ReplaceTextures` should + be used instead. + Replaces textures named `from` with `to` within the map. `flags` may be used to filter out certain textures from being replaced: @@ -91,9 +106,4 @@ struct TexMan | `TexMan.NOT_TOP` | Filters out linedef upper textures. | | `TexMan.NOT_WALL` | Filters out any linedef texture. | -- `SetCameraToTexture` - - Sets the camera texture (as defined in `ANIMDEFS`) `texture` to the - viewpoint of `viewpoint` with a fov of `fov`. - diff --git a/api-global-LevelLocals.md b/api-global-LevelLocals.md deleted file mode 100644 index 513f32b..0000000 --- a/api-global-LevelLocals.md +++ /dev/null @@ -1,455 +0,0 @@ -# LevelLocals - -Most map-relative data is stored in this structure. - -``` -struct LevelLocals -{ - // Map data - array Lines; - array Sectors; - array Sides; - - internal array SectorPortals; - readonly array Vertexes; - - // Stats - int Found_Items; - int Found_Secrets; - int Killed_Monsters; - int Total_Items; - int Total_Monsters; - int Total_Secrets; - - // Time - readonly int MapTime; - readonly int ParTime; - readonly int StartTime; - readonly int SuckTime; - readonly int Time; - readonly int TotalTime; - - // Map sequencing - readonly int Cluster; - readonly int ClusterFlags; - readonly string LevelName; - readonly int LevelNum; - readonly string MapName; - - string NextMap; - string NextSecretMap; - - readonly int MapType; - - // Music - readonly string Music; - readonly int MusicOrder; - - // Sky - readonly textureid SkyTexture1; - readonly textureid SkyTexture2; - - float SkySpeed1; - float SkySpeed2; - - // Physics - play double AirControl - play double AirFriction; - play int AirSupply; - play double Gravity; - - // State - bool AllMap; - bool Frozen; - - // Static info - name DeathSequence; - string F1Pic; - - readonly bool ActOwnSpecial; - readonly bool AllowRespawn; - readonly bool CheckSwitchRange; - readonly int FogDensity; - readonly bool Infinite_Flight; - readonly bool KeepFullInventory; - readonly bool MissilesActivateImpact; - readonly bool MonsterFallingDamage; - readonly bool MonstersTelefrag; - readonly bool NoInventoryBar; - readonly bool NoMonsters; - readonly bool No_Dlg_Freeze; - readonly int OutsideFogDensity; - readonly float PixelStretch; - readonly bool PolyGrind; - readonly bool RemoveItems; - readonly int SkyFog; - readonly bool SndSeqTotalCtrl; - readonly double TeamDamage; - - double GetUDMFFloat(int type, int index, name key); - int GetUDMFInt(int type, int index, name key); - string GetUDMFString(int type, int index, name key); - - int ExecuteSpecial(int special, Actor activator, Line linedef, bool lineside, int arg1 = 0, int arg2 = 0, int arg3 = 0, int arg4 = 0, int arg5 = 0); - - void ChangeSky(textureid sky1, textureid sky2); - string FormatMapName(int mapnamecolor); - string GetChecksum() const; - void SetInterMusic(string nextmap); - void StartIntermission(name type, int state) const; - string TimeFormatted(bool totals = false); - - bool IsCrouchingAllowed() const; - bool IsFreelookAllowed() const; - bool IsJumpingAllowed() const; - - static void GiveSecret(Actor activator, bool printmsg = true, bool playsound = true); - static void RemoveAllBots(bool fromlist); - static void StartSlideshow(name whichone = 'none'); - static void WorldDone(); - - static vector2 GetAutomapPosition(); - - static clearscope bool IsPointInMap(vector3 p); - - static clearscope vector3 SphericalCoords(vector3 viewpoint, vector3 targetPos, vector2 viewAngles = (0, 0), bool absolute = false); - static clearscope vector2 Vec2Diff(vector2 v1, vector2 v2); - static clearscope vector2 Vec2Offset(vector2 pos, vector2 dir, bool absolute = false); - static clearscope vector3 Vec2OffsetZ(vector2 pos, vector2 dir, double atz, bool absolute = false); - static clearscope vector3 Vec3Diff(vector3 v1, vector3 v2); - static clearscope vector3 Vec3Offset(vector3 pos, vector3 dir, bool absolute = false); -} -``` -- `Lines` - - TODO - -- `Sectors` - - TODO - -- `Sides` - - TODO - -- `SectorPortals` - - TODO - -- `Vertexes` - - TODO - -- `Found_Items` - - TODO - -- `Found_Secrets` - - TODO - -- `Killed_Monsters` - - TODO - -- `Total_Items` - - TODO - -- `Total_Monsters` - - TODO - -- `Total_Secrets` - - TODO - -- `MapTime` - - TODO - -- `ParTime` - - TODO - -- `StartTime` - - TODO - -- `SuckTime` - - TODO - -- `Time` - - TODO - -- `TotalTime` - - TODO - -- `Cluster` - - TODO - -- `ClusterFlags` - - Flags for this cluster. May contain any of the following bit flags: - - | Name | Description | - | ---- | ----------- | - | `Level.CLUSTER_HUB` | This cluster uses hub behaviour. | - -- `LevelName` - - TODO - -- `LevelNum` - - TODO - -- `MapName` - - TODO - -- `NextMap` - - TODO - -- `NextSecretMap` - - TODO - -- `MapType` - - TODO - -- `Music` - - TODO - -- `MusicOrder` - - TODO - -- `SkyTexture1` - - TODO - -- `SkyTexture2` - - TODO - -- `SkySpeed1` - - TODO - -- `SkySpeed2` - - TODO - -- `AirControl` - - TODO - -- `AirSupply` - - TODO - -- `Gravity` - - TODO - -- `AllMap` - - TODO - -- `Frozen` - - TODO - -- `DeathSequence` - - TODO - -- `F1Pic` - - TODO - -- `ActOwnSpecial` - - TODO - -- `AllowRespawn` - - TODO - -- `CheckSwitchRange` - - TODO - -- `FogDensity` - - TODO - -- `Infinite_Flight` - - TODO - -- `KeepFullInventory` - - TODO - -- `MissilesActivateImpact` - - TODO - -- `MonsterFallingDamage` - - TODO - -- `MonstersTelefrag` - - TODO - -- `NoInventoryBar` - - TODO - -- `NoMonsters` - - TODO - -- `No_Dlg_Freeze` - - TODO - -- `OutsideFogDensity` - - TODO - -- `PixelStretch` - - TODO - -- `PolyGrind` - - TODO - -- `RemoveItems` - - TODO - -- `SkyFog` - - TODO - -- `SndSeqTotalCtrl` - - TODO - -- `TeamDamage` - - TODO - -- `GetUDMFFloat` - - TODO - -- `GetUDMFInt` - - TODO - -- `GetUDMFString` - - TODO - -- `ExecuteSpecial` - - TODO - -- `ChangeSky` - - TODO - -- `FormatMapName` - - TODO - -- `GetChecksum` - - TODO - -- `SetInterMusic` - - TODO - -- `StartIntermission` - - TODO - -- `TimeFormatted` - - TODO - -- `IsCrouchingAllowed` - - TODO - -- `IsFreelookAllowed` - - TODO - -- `IsJumpingAllowed` - - TODO - -- `GiveSecret` - - TODO - -- `RemoveAllBots` - - TODO - -- `StartSlideshow` - - TODO - -- `WorldDone` - - TODO - -- `GetAutomapPosition` - - TODO - -- `IsPointInMap` - - TODO - -- `SphericalCoords` - - TODO - -- `Vec2Diff` - - TODO - -- `Vec2Offset` - - TODO - -- `Vec2OffsetZ` - - TODO - -- `Vec3Diff` - - TODO - -- `Vec3Offset` - - TODO - - diff --git a/api-global-data-Client.md b/api-global-data-Client.md index 3f6edbe..1979738 100644 --- a/api-global-data-Client.md +++ b/api-global-data-Client.md @@ -19,6 +19,8 @@ readonly Font ConFont; readonly Font IntermissionFont; readonly Font SmallFont; readonly Font SmallFont2; +readonly Font NewConsoleFont; +readonly Font NewSmallFont; ui float BackbuttonAlpha; ui int BackbuttonTime; @@ -96,6 +98,14 @@ int LocalViewPitch; The alternate `smallfnt`. +- `NewConsoleFont` + + TODO + +- `NewSmallFont` + + TODO + - `BackbuttonAlpha` Alpha of the back button in menus. diff --git a/api-global-data-Game.md b/api-global-data-Game.md index fe5d67d..0abb23b 100644 --- a/api-global-data-Game.md +++ b/api-global-data-Game.md @@ -3,14 +3,15 @@ TODO ``` -readonly bool AutomapActive; -readonly bool DemoPlayback; -play uint GameAction; -readonly int GameState; -readonly int GameTic; -readonly uint8 GlobalFreeze; -play LevelLocals Level; +readonly bool AutomapActive; +readonly bool DemoPlayback; +readonly uint GameAction; +readonly int GameState; +readonly int GameTic; +play LevelLocals Level; +readonly MusPlayingInfo MusPlaying; +deprecated("3.8") readonly bool GlobalFreeze; int ValidCount; ``` @@ -66,14 +67,18 @@ int ValidCount; Number of game tics passed since engine initialization. **Not deterministic.** -- `GlobalFreeze` - - TODO: I have no idea what the difference between this and `Level.Frozen` is. - - `Level` All level info as defined in `LevelLocals`. +- `MusPlaying` + + TODO + +- `GlobalFreeze` + + Deprecated. Don't use. + - `ValidCount` Don't use this. diff --git a/api-global-func-Game.md b/api-global-func-Game.md index 436b448..0e7ef2d 100644 --- a/api-global-func-Game.md +++ b/api-global-func-Game.md @@ -7,8 +7,8 @@ string G_SkillName(); int G_SkillPropertyInt(int p); double G_SkillPropertyFloat(int p); -vector3, int G_PickDeathmatchStart(); -vector3, int G_PickPlayerStart(int pnum, int flags = 0); +deprecated("3.8") vector3, int G_PickDeathmatchStart(); +deprecated("3.8") vector3, int G_PickPlayerStart(int pnum, int flags = 0); ``` - `G_SkillName` @@ -53,10 +53,16 @@ vector3, int G_PickPlayerStart(int pnum, int flags = 0); - `G_PickDeathmatchStart` + Note: This function is deprecated and `LevelLocals::PickDeathmatchStart` + should be used instead. + Returns the position and angle of a random death-match start location. - `G_PickPlayerStart` + Note: This function is deprecated and `LevelLocals::PickPlayerStart` should + be used instead. + Returns the position and angle of a player start for player `pnum`. `flags` may be: diff --git a/api-global-DEHInfo.md b/api-global-type-DEHInfo.md similarity index 94% rename from api-global-DEHInfo.md rename to api-global-type-DEHInfo.md index 3fc8cf8..84d7037 100644 --- a/api-global-DEHInfo.md +++ b/api-global-type-DEHInfo.md @@ -9,6 +9,7 @@ struct DEHInfo readonly int BlueAC; readonly double ExplosionAlpha; readonly uint8 ExplosionStyle; + readonly int MaxHealth; readonly int MaxSoulsphere; readonly int NoAutofreeze; } @@ -33,6 +34,10 @@ struct DEHInfo For actors with the `DEHEXPLOSION` flag, the render style to be applied on explosion. +- `MaxHealth` + + TODO + - `MaxSoulsphere` The `Inventory.MaxAmount` for `Soulsphere`. Default is 200. diff --git a/api-global-FOptionMenuSettings.md b/api-global-type-FOptionMenuSettings.md similarity index 100% rename from api-global-FOptionMenuSettings.md rename to api-global-type-FOptionMenuSettings.md diff --git a/api-global-GameInfoStruct.md b/api-global-type-GameInfoStruct.md similarity index 91% rename from api-global-GameInfoStruct.md rename to api-global-type-GameInfoStruct.md index 162fe22..5e59c6f 100644 --- a/api-global-GameInfoStruct.md +++ b/api-global-type-GameInfoStruct.md @@ -19,6 +19,8 @@ struct GameInfoStruct array InfoPages; bool IntermissionCounter; bool NoRandomPlayerClass; + double NormForwardMove[2]; + double NormSideMove[2]; double TeleFogHeight; string mBackButton; name mSliderColor; diff --git a/api-global-type-LevelLocals.md b/api-global-type-LevelLocals.md new file mode 100644 index 0000000..1a9e8ec --- /dev/null +++ b/api-global-type-LevelLocals.md @@ -0,0 +1,160 @@ +# LevelLocals + +Most map-relative data is stored in this structure. + +``` +struct LevelLocals +{ + // Map data + array Lines; + array Sectors; + array Sides; + + internal array SectorPortals; + readonly array Vertexes; + + // Stats + int Found_Items; + int Found_Secrets; + int Killed_Monsters; + int Total_Items; + int Total_Monsters; + int Total_Secrets; + + // Time + readonly int MapTime; + readonly int ParTime; + readonly int StartTime; + readonly int SuckTime; + readonly int Time; + readonly int TotalTime; + + // Map sequencing + readonly int Cluster; + readonly int ClusterFlags; + readonly string LevelName; + readonly int LevelNum; + readonly string MapName; + + string NextMap; + string NextSecretMap; + + readonly int MapType; + + // Music + readonly string Music; + readonly int MusicOrder; + + // Sky + readonly textureid SkyTexture1; + readonly textureid SkyTexture2; + + float SkySpeed1; + float SkySpeed2; + + // Physics + play double AirControl + play double AirFriction; + play int AirSupply; + play double Gravity; + + readonly int CompatFlags; + readonly int CompatFlags2; + + // State + bool AllMap; + deprecated("3.8") bool Frozen; + + // Static info + name DeathSequence; + + readonly bool ActOwnSpecial; + readonly bool AllowRespawn; + readonly bool CheckSwitchRange; + readonly string F1Pic; + readonly int FogDensity; + readonly bool Infinite_Flight; + readonly bool KeepFullInventory; + readonly bool MissilesActivateImpact; + readonly bool MonsterFallingDamage; + readonly bool MonstersTelefrag; + readonly bool NoInventoryBar; + readonly bool NoMonsters; + readonly bool No_Dlg_Freeze; + readonly int OutsideFogDensity; + readonly float PixelStretch; + readonly bool PolyGrind; + readonly bool RemoveItems; + readonly int SkyFog; + readonly bool SndSeqTotalCtrl; + readonly double TeamDamage; + + double GetUDMFFloat(int type, int index, name key); + int GetUDMFInt(int type, int index, name key); + string GetUDMFString(int type, int index, name key); + + play int ExecuteSpecial(int special, Actor activator, Line linedef, bool lineside, int arg1 = 0, int arg2 = 0, int arg3 = 0, int arg4 = 0, int arg5 = 0); + + void ChangeSky(textureid sky1, textureid sky2); + string FormatMapName(int mapnamecolor); + string GetChecksum() const; + void SetInterMusic(string nextmap); + void StartIntermission(name type, int state) const; + string TimeFormatted(bool totals = false); + + bool IsCrouchingAllowed() const; + bool IsFreelookAllowed() const; + bool IsJumpingAllowed() const; + + void GiveSecret(Actor activator, bool printmsg = true, bool playsound = true); + void StartSlideshow(name whichone = 'none'); + void WorldDone(); + + static void MakeScreenShot(); + static void MakeAutoSave(); + + deprecated("3.8") static void RemoveAllBots(bool fromlist); + + ui vector2 GetAutomapPosition(); + + play SpotState GetSpotState(bool create = true); + int FindUniqueTid(int start = 0, int limit = 0); + uint GetSkyboxPortal(Actor actor); + void ReplaceTextures(string from, string to, int flags); + clearscope HealthGroup FindHealthGroup(int id); + vector3, int PickDeathmatchStart(); + vector3, int PickPlayerStart(int pnum, int flags = 0); + int IsFrozen() const; + void SetFrozen(bool on); + + clearscope bool IsPointInLevel(vector3 p) const; + clearscope Sector PointInSector(vector2 p) const; + deprecated("3.8") static clearscope bool IsPointInMap(vector3 p); + + clearscope vector3 SphericalCoords(vector3 viewpoint, vector3 targetPos, vector2 viewAngles = (0, 0), bool absolute = false) const; + clearscope vector2 Vec2Diff(vector2 v1, vector2 v2) const; + clearscope vector2 Vec2Offset(vector2 pos, vector2 dir, bool absolute = false) const; + clearscope vector3 Vec2OffsetZ(vector2 pos, vector2 dir, double atz, bool absolute = false) const; + clearscope vector3 Vec3Diff(vector3 v1, vector3 v2) const; + clearscope vector3 Vec3Offset(vector3 pos, vector3 dir, bool absolute = false) const; + + SectorTagIterator CreateSectorTagIterator(int tag, Line defline = null); + LineIDIterator CreateLineIDIterator(int tag); + ActorIterator CreateActorIterator(int tid, class type = "Actor"); + + play bool CreateCeiling(Sector sec, int type, Line ln, double speed, double speed2, double height = 0, int crush = -1, int silent = 0, int change = 0, int crushmode = 0); + play bool CreateFloor(Sector sec, int type, Line ln, double speed, double speed2, double height = 0, int crush = -1, int silent = 0, int change = 0, bool crushmode = false, bool hereticlower = false); +} +``` + +TODO + +- `ClusterFlags` + + Flags for this cluster. May contain any of the following bit flags: + + | Name | Description | + | ---- | ----------- | + | `Level.CLUSTER_HUB` | This cluster uses hub behaviour. | + + diff --git a/api.md b/api.md index 467787f..2dbcdf6 100644 --- a/api.md +++ b/api.md @@ -192,7 +192,7 @@ object. Generally these mirror global information within the engine itself. These functions are accessible in any context and are not bound by any specific object. Generally these are utility functions. - + * [DEHInfo](api-global-DEHInfo.md) * [FOptionMenuSettings](api-global-FOptionMenuSettings.md) diff --git a/glossary-Versions.md b/glossary-Versions.md index f0c15ab..d2f06f6 100644 --- a/glossary-Versions.md +++ b/glossary-Versions.md @@ -18,6 +18,7 @@ * [Version 3.6](#version-36) * [Version 3.7](#version-37) * [Version 3.7.2](#version-372) +* [Version 4.0.0](#version-400) @@ -510,4 +511,196 @@ Here is a list of differences between ZScript versions. - Made `ScriptUtil::PlayerAmmo` be `static`. - Made `bool` negatable by the `-` prefix operator. +## Version 4.0.0 + +- Added `Actor::CanTouchItem`. +- Added `Actor::GetMaxHealth`. +- Added `Actor::IsFrozen`. +- Added `COMPATF2_*`. +- Added `COMPATF_*`. +- Added `CoOpStatusScreen::DisplayFont`. +- Added `CoOpStatusScreen::FontScale`. +- Added `CoOpStatusScreen::RowHeight`. +- Added `ConversationMenu::LineHeight`. +- Added `DehInfo::MaxHealth`. +- Added `GameInfoStruct::NormForwardMove`. +- Added `GameInfoStruct::NormSideMove`. +- Added `Inventory::bUNCLEARABLE`. +- Added `LevelCompatibility::AddLineID`. +- Added `LevelCompatibility::AddSectorTag`. +- Added `LevelCompatibility::Apply`. +- Added `LevelCompatibility::ClearLineIDs`. +- Added `LevelCompatibility::ClearLineSpecial`. +- Added `LevelCompatibility::ClearSectorTags`. +- Added `LevelCompatibility::GetDefaultActor`. +- Added `LevelCompatibility::Level`. +- Added `LevelCompatibility::OffsetSectorPlane`. +- Added `LevelCompatibility::SetLineActivation`. +- Added `LevelCompatibility::SetLineFlags`. +- Added `LevelCompatibility::SetLineSectorRef`. +- Added `LevelCompatibility::SetLineSpecial`. +- Added `LevelCompatibility::SetSectorLight`. +- Added `LevelCompatibility::SetSectorSpecial`. +- Added `LevelCompatibility::SetSectorTextureID`. +- Added `LevelCompatibility::SetSectorTexture`. +- Added `LevelCompatibility::SetThingFlags`. +- Added `LevelCompatibility::SetThingSkills`. +- Added `LevelCompatibility::SetThingXY`. +- Added `LevelCompatibility::SetTingZ`. +- Added `LevelCompatibility::SetVertex`. +- Added `LevelCompatibility::SetWallTextureID`. +- Added `LevelCompatibility::SetWallTexture`. +- Added `LevelCompatibility::SetWallYScale`. +- Added `LevelLocals::CompatFlags2`. +- Added `LevelLocals::CompatFlags`. +- Added `LevelLocals::CreateActorIterator`. +- Added `LevelLocals::CreateCeiling`. +- Added `LevelLocals::CreateFloor`. +- Added `LevelLocals::CreateLineIDIterator`. +- Added `LevelLocals::CreateSectorTagIterator`. +- Added `LevelLocals::FindHealthGroup`. +- Added `LevelLocals::FindUniqueTid`. +- Added `LevelLocals::GetSkyboxPortal`. +- Added `LevelLocals::GetSpotState`. +- Added `LevelLocals::IsFrozen`. +- Added `LevelLocals::IsPointInLevel`. +- Added `LevelLocals::MakeAutoSave`. +- Added `LevelLocals::MakeScreenShot`. +- Added `LevelLocals::PickDeathmatchStart`. +- Added `LevelLocals::PickPlayerStart`. +- Added `LevelLocals::PointInSector`. +- Added `LevelLocals::ReplaceTextures`. +- Added `LevelLocals::SetFrozen`. +- Added `ListMenuItemStaticPatch::mColor`. +- Added `ListMenuItemStaticPatch::mFont`. +- Added `ListMenuItemStaticPatch::mSubstitute`. +- Added `LoadSaveMenu::BrokenSaveComment`. +- Added `LoadSaveMenu::CommentRows`. +- Added `LoadSaveMenu::FontScale`. +- Added `LoadSaveMenu::UpdateSaveComment`. +- Added `MAXPLAYERNAME`. +- Added `Menu::DrawOptionText`. +- Added `Menu::OptionColor`. +- Added `Menu::OptionFont`. +- Added `Menu::OptionHeight`. +- Added `Menu::OptionWidth`. +- Added `MusPlayingInfo`. +- Added `MusPlaying`. +- Added `NewConsoleFont`. +- Added `NewSmallFont`. +- Added `OptionMenuDescriptor::mFont`. +- Added `OptionMenuItem::DrawText`. +- Added `OptionMenuItem::DrawValue`. +- Added `PlayerInfo::GetMoveBob`. +- Added `PlayerInfo::GetStillBob`. +- Added `PlayerInfo::SendPitchLimits`. +- Added `PlayerPawn::Face`. +- Added `PlayerPawn::GetFlechetteItem`. +- Added `PlayerPawn::GetPainFlash`. +- Added `PlayerPawn::GiveDeathmatchInventory`. +- Added `PlayerPawn::MAXBOB`. +- Added `ReplacedEvent`. +- Added `SaveGameManager::SaveCommentString`. +- Added `SectorPortal::GetSkyboxPortal`. +- Added `StaticEventHandler::CheckReplacee`. +- Added `StatusScreen::DrawNumScaled`. +- Added `StatusScreen::DrawPatchOrText`. +- Added `StatusScreen::DrawPercentScaled`. +- Added `StatusScreen::DrawTextScaled`. +- Added `StatusScreen::DrawTimeFont`. +- Added `StatusScreen::EnteringPatch`. +- Added `StatusScreen::FinishedPatch`. +- Added `String::AppendCharacter`. +- Added `String::DeleteLastCharacter`. +- Added `TexMan::Localize`. +- Added `TexMan::OkForLocalization`. +- Added `TextEnterMenu::CursorSize`. +- Added `TextEnterMenu::DisplayFont`. +- Added `TextEnterMenu::OpenTextEnter`. +- Added `Thinker::Level`. +- Added `WBStartStruct::ThisName`. +- Added `Weapon::LookScale`. +- Added `desc` parameter to `ListMenuItemStaticPatch::Init`. +- Added `desc` parameter to `ListMenuItemStaticPatchCentered::Init`. +- Added `dpf` parameter to `TextEnterMenu::Init`. +- Added `flags` parameter to `Actor::GetModifiedDamage`. +- Added `flags` parameter to `Inventory::ModifyDamage`. +- Added `inflictor` parameter to `Actor::GetModifiedDamage`. +- Added `inflictor` parameter to `Inventory::ModifyDamage`. +- Added `level` parameter to `ScriptUtils::SetMarineSprite`. +- Added `level` parameter to `ScriptUtils::SetMarineWeapon`. +- Added `nomove` parameter to `StatusScreen::DrawNum`. +- Added `nomove` parameter to `StatusScreen::DrawPercent`. +- Added `os_AnyOrAllOption`. +- Added `os_Menu`. +- Added `os_Query`. +- Added `os_SearchField`. +- Added `source` parameter to `Actor::GetModifiedDamage`. +- Added `source` parameter to `Inventory::ModifyDamage`. +- Deprecated `Actor::FindUniqueTid`. +- Deprecated `ActorIterator::Create`. +- Deprecated `Ceiling::CreateCeiling`. +- Deprecated `Floor::CreateFloor`. +- Deprecated `G_PickDeathmatchStart`. +- Deprecated `G_PickPlayerStart`. +- Deprecated `GlobalFreeze`. +- Deprecated `HealthGroup::Find`. +- Deprecated `LevelLocals::Frozen`. +- Deprecated `LevelLocals::IsPointInMap`. +- Deprecated `LevelLocals::RemoveAllBots`. +- Deprecated `LineIDIterator::Create`. +- Deprecated `Menu::DrawConText`. +- Deprecated `PatchInfo::mPatch`. +- Deprecated `SaveGameManager::DrawSaveComment`. +- Deprecated `Sector::PointInSector`. +- Deprecated `SectorTagIterator::Create`. +- Deprecated `SpotState::GetSpotState`. +- Deprecated `StatusScreen::DrawPatchText`. +- Deprecated `TexMan::ReplaceTextures`. +- Deprecated `TextEnterMenu::Open`. +- Implemented compound initializers for single-dimension arrays. +- Made `GameAction` be `readonly`. +- Made `LevelLocals::ExecuteSpecial` be `play`. +- Made `LevelLocals::F1Pic` be `readonly`. +- Made `LevelLocals::GetAutomapPosition` be `ui`. +- Made `LevelLocals::GetAutomapPosition` not be `static`. +- Made `LevelLocals::GiveSecret` not be `static`. +- Made `LevelLocals::SphericalCoords` be `const`. +- Made `LevelLocals::SphericalCoords` not be `static`. +- Made `LevelLocals::StartSlideshow` not be `static`. +- Made `LevelLocals::Vec2Diff` be `const`. +- Made `LevelLocals::Vec2Diff` not be `static`. +- Made `LevelLocals::Vec2OffsetZ` be `const`. +- Made `LevelLocals::Vec2OffsetZ` not be `static`. +- Made `LevelLocals::Vec2Offset` be `const`. +- Made `LevelLocals::Vec2Offset` not be `static`. +- Made `LevelLocals::Vec3Diff` be `const`. +- Made `LevelLocals::Vec3Diff` not be `static`. +- Made `LevelLocals::Vec3Offset` be `const`. +- Made `LevelLocals::Vec3Offset` not be `static`. +- Made `LevelLocals::WorldDone` not be `static`. +- Made `PlayerMenu::AlwaysRunChanged` be `static`. +- Made `PlayerMenu::AutoaimChanged` be `static`. +- Made `PlayerMenu::ClassChanged` be `static`. +- Made `PlayerMenu::ColorChanged` be `static`. +- Made `PlayerMenu::ColorSetChanged` be `static`. +- Made `PlayerMenu::GenderChanged` be `static`. +- Made `PlayerMenu::PlayerNameChanged` be `static`. +- Made `PlayerMenu::SkinChanged` be `static`. +- Made `PlayerMenu::SwitchOnPickupChanged` be `static`. +- Made `PlayerMenu::TeamChanged` be `static`. +- Made `PlayerPawn::CalcHeight` be `virtual`. +- Made `PlayerPawn::ColorRangeEnd` be `meta`. +- Made `PlayerPawn::ColorRangeStart` be `meta`. +- Made `PlayerPawn::FlechetteType` be `class`. +- Made `PlayerPawn::ResetAirSupply` be `virtual`. +- Made `PlayerPawn::TweakSpeeds` be `virtual`. +- Made `SaveGameManager` be `ui`. +- Made `SaveGameNode::FileName` be `readonly`. +- Made `StatusScreen::DrawEL` be `virtual`. +- Made `StatusScreen::DrawLF` be `virtual`. +- Removed `PlayerPawn::GetMaxHealth` (as it is now an `Actor` override.) +- Removed `PlayerPawn::PlayerFlags`. +- Removed `TextEnterMenu::mSizeMode`. +