Skip to content

chore(ini): Use correct types in FieldParse array terminators - #3388

Merged
xezon merged 1 commit into
TheSuperHackers:mainfrom
xezon:xezon/refactor-fieldparse-terminators
Sep 29, 2026
Merged

xezon merged 1 commit into
TheSuperHackers:mainfrom
xezon:xezon/refactor-fieldparse-terminators

Conversation

@xezon

@xezon xezon commented Sep 29, 2026

Copy link
Copy Markdown

This change adds nullptr's in the terminators of FieldParse arrays.

@xezon xezon added the Refactor Edits the code with insignificant behavior changes, is never user facing label Sep 29, 2026
@xezon xezon changed the title chore: Use nullptr's in terminators of FieldParse arrays chore(ini): Use nullptr's in terminators of FieldParse arrays Sep 29, 2026
@coderabbitai

coderabbitai Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 40407ea9-cdd6-4a2a-b26c-9773eda338d7

📥 Commits

Reviewing files that changed from the base of the PR and between edbc165 and 4fd6818.

📒 Files selected for processing (129)
  • Generals/Code/GameEngine/Include/GameLogic/Module/AssaultTransportAIUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/AutoDepositUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/AutoHealBehavior.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/BoneFXUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/CaveContain.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/CheckpointUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/ConvertToCarBombCrateCollide.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/CreateCrateDie.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/CrushDie.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/DamageModule.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/DefaultProductionExitUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/DelayedUpgrade.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/DeletionUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/DeliverPayloadAIUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/DeployStyleAIUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/EMPUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/EnemyNearUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/FXListDie.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/FireWeaponWhenDamagedBehavior.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/FireWeaponWhenDeadBehavior.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/GarrisonContain.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/HackInternetAIUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/HijackerUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/HiveStructureBody.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/LifetimeUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/MissileLauncherBuildingUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/MobMemberSlavedUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/MoneyCrateCollide.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/ParkingPlaceBehavior.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/PowerPlantUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/QueueProductionExitUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/RadarUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/RadiusDecalUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/RailroadGuideAIUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/SalvageCrateCollide.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/SlavedUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/SpawnBehavior.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/SpawnPointProductionExitUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/SpecialAbilityUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/SpecialPowerCompletionDie.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/StickyBombUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/StructureBody.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/SupplyCenterProductionExitUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/SupplyTruckAIUpdate.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/TransitionDamageFX.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/TunnelContain.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/UnitCrateCollide.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/UpgradeDie.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/UpgradeModule.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/VeterancyCrateCollide.h
  • Generals/Code/GameEngine/Include/GameLogic/Module/WorkerAIUpdate.h
  • Generals/Code/GameEngine/Source/GameLogic/Object/Behavior/POWTruckBehavior.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Behavior/PrisonBehavior.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Behavior/PropagandaCenterBehavior.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Die/DamDie.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/SpecialPower/DemoralizeSpecialPower.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/ChinookAIUpdate.cpp
  • Generals/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/POWTruckAIUpdate.cpp
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/AnimationSteeringUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/AssaultTransportAIUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/AutoDepositUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/AutoHealBehavior.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/BoneFXUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/CaveContain.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/CheckpointUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/ConvertToCarBombCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/CountermeasuresBehavior.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/CreateCrateDie.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/CrushDie.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/DamageModule.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/DefaultProductionExitUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/DeletionUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/DeliverPayloadAIUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/DeployStyleAIUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/EMPUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/EnemyNearUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/FXListDie.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/FireWeaponWhenDamagedBehavior.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/FireWeaponWhenDeadBehavior.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/GarrisonContain.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/GrantStealthBehavior.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/HackInternetAIUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/HijackerUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/HiveStructureBody.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/LifetimeUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/MissileLauncherBuildingUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/MobMemberSlavedUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/MoneyCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/NeutronBlastBehavior.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/ParkingPlaceBehavior.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/PowerPlantUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/QueueProductionExitUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/RadarUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/RadiusDecalUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/RailroadGuideAIUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SabotageCommandCenterCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SabotageFakeBuildingCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SabotageInternetCenterCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SabotageMilitaryFactoryCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SabotagePowerPlantCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SabotageSuperweaponCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SabotageSupplyCenterCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SabotageSupplyDropzoneCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SalvageCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SlavedUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SmartBombTargetHomingUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SpawnBehavior.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SpawnPointProductionExitUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SpecialAbilityUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SpecialPowerCompletionDie.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SpyVisionUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/StickyBombUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/StructureBody.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SupplyCenterProductionExitUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/SupplyTruckAIUpdate.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/TransitionDamageFX.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/TunnelContain.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/UnitCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/UpgradeDie.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/UpgradeModule.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/VeterancyCrateCollide.h
  • GeneralsMD/Code/GameEngine/Include/GameLogic/Module/WorkerAIUpdate.h
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/POWTruckBehavior.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/PrisonBehavior.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Behavior/PropagandaCenterBehavior.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Die/DamDie.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/SpecialPower/DemoralizeSpecialPower.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/ChinookAIUpdate.cpp
  • GeneralsMD/Code/GameEngine/Source/GameLogic/Object/Update/AIUpdate/POWTruckAIUpdate.cpp

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.


Walkthrough

The pull request updates field-parse table terminators across Generals and GeneralsMD. Pointer fields use nullptr instead of integer zero literals. Existing numeric zero values and parsed field entries remain unchanged.

Changes

Field-parse sentinel updates

Layer / File(s) Summary
Update field-parse terminators
Generals/Code/GameEngine/Include/GameLogic/Module/*, Generals/Code/GameEngine/Source/GameLogic/Object/{Behavior,Die,SpecialPower,Update/AIUpdate}/*, GeneralsMD/Code/GameEngine/Include/GameLogic/Module/*, GeneralsMD/Code/GameEngine/Source/GameLogic/Object/{Behavior,Die,SpecialPower,Update/AIUpdate}/*
Field-parse table terminators now use nullptr for pointer fields. Numeric zero values remain where applicable. In Generals SpawnBehavior, the terminator is placed on a separate row from the InitialBurst entry.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Refactor

Merge Risk: ⚪ Minimal · up to 4fd68

This PR updates field-parse terminators without changing parsing behavior or the Chinook egress path. No actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly and concisely describes the main change: using correct pointer types in FieldParse array terminators.
Description check ✅ Passed The description directly relates to the changeset and states that nullptr values were added to FieldParse array terminators.

Comment @coderabbitai help to get the list of available commands.

@greptile-apps

greptile-apps Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[Low risk] Replace integer zero with nullptr in array terminators.

The PR appears safe to merge.

Summary

Replaces zero literals with nullptr in FieldParse array terminators across the Generals and GeneralsMD module definitions. The terminator values and INI parsing behavior remain unchanged.

Reviews (1) · Last reviewed commit: "chore: Use nullptr's in terminators of F..."

@Caball009 Caball009 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps avoid "nullptr's" in the pull request title.

@xezon xezon changed the title chore(ini): Use nullptr's in terminators of FieldParse arrays chore(ini): Use correct types in FieldParse array terminators Sep 29, 2026
@xezon
xezon merged commit 10f5504 into TheSuperHackers:main Sep 29, 2026
46 of 47 checks passed
@xezon
xezon deleted the xezon/refactor-fieldparse-terminators branch September 29, 2026 18:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Refactor Edits the code with insignificant behavior changes, is never user facing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants