[Video] ScreenWidth=800 ScreenHeight=600 VideoBackBuffer=no Render3D=no [Options] Weather=no UnitSpeeding=no MaxInfantry=350 MaxVehicles=300 Document version 1.0 – last updated 2026-04-17 For educational and software preservation purposes only.
InfantryClass::Allocate uses a static array of size MAX_INFANTRY (often 500). Exceeding this silently corrupts the next object’s vtable, leading to a call via a corrupted function pointer → access violation. red alert 2 has encountered an internal error
The mission script creates 12 enemy units via Reinforcements trigger at the moment of beacon destruction. The map’s unit pool already contains 492 units (mostly civilian vehicles). Adding 12 exceeds MAX_UNITS = 500 . The 13th unit’s constructor writes past UnitClass::vtable , corrupting the next object in memory – which happens to be the mission victory trigger pointer. red alert 2 has encountered an internal error