Skip to content

Division by zero crash in W3DCommandBarGenExpDraw() when experience points for level up are 0 #797

Description

@xezon

INI/Rank.ini was modified to

;//////////////////////////////////////////////////////////////////////////////
;FILE: Rank.ini (SYSTEM) ////////////////////////////////////////////////////
;//////////////////////////////////////////////////////////////////////////////

Rank 1
  RankName                      = INI:RankLevel1
  SkillPointsNeeded             = 0
  SciencesGranted               = SCIENCE_Rank1
  SciencePurchasePointsGranted  = 20
End

Rank 2
  RankName                      = INI:RankLevel2
  SkillPointsNeeded             = 0
  SciencesGranted               = SCIENCE_Rank2
  SciencePurchasePointsGranted  = 1
End

Rank 3
  RankName                      = INI:RankLevel3
  SkillPointsNeeded             = 0
  SciencesGranted               = SCIENCE_Rank3
  SciencePurchasePointsGranted  = 1
End

Rank 4
  RankName                      = INI:RankLevel4
  SkillPointsNeeded             = 0
  SciencesGranted               = SCIENCE_Rank4
  SciencePurchasePointsGranted  = 1
End

Rank 5
  RankName                      = INI:RankLevel5
  SkillPointsNeeded             = 0
  SciencesGranted               = SCIENCE_Rank5
  SciencePurchasePointsGranted  = 3
End

Then, loading into a match crashes the game:

>	generalsv.exe!W3DCommandBarGenExpDraw(GameWindow * window, WinInstanceData * instData) Line 501	C++
 	generalsv.exe!GameWindowManager::drawWindow(GameWindow * window) Line 1298	C++
 	generalsv.exe!GameWindowManager::drawWindow(GameWindow * window) Line 1313	C++
 	generalsv.exe!GameWindowManager::winRepaint() Line 1347	C++
 	[Inline Frame] generalsv.exe!SubsystemInterface::DRAW() Line 131	C++
 	generalsv.exe!W3DDisplay::draw() Line 1792	C++
 	[Inline Frame] generalsv.exe!SubsystemInterface::DRAW() Line 131	C++
 	generalsv.exe!GameClient::update() Line 729	C++
 	[Inline Frame] generalsv.exe!SubsystemInterface::UPDATE() Line 130	C++
 	generalsv.exe!GameEngine::update() Line 581	C++
 	generalsv.exe!Win32GameEngine::update() Line 93	C++
 	generalsv.exe!GameEngine::execute() Line 656	C++
 	generalsv.exe!GameMain(int argc, char * * argv) Line 47	C++
 	generalsv.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow) Line 994	C++
 	[Inline Frame] generalsv.exe!invoke_main() Line 102	C++
 	generalsv.exe!__scrt_common_main_seh() Line 288	C++
 	kernel32.dll!7631fcc9()	Unknown
 	[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]	
 	ntdll.dll!779382ae()	Unknown
 	ntdll.dll!7793827e()	Unknown
Unhandled exception at 0x00507F71 in generalsv.exe: 0xC0000094: Integer division by zero.

Metadata

Metadata

Assignees

No one assigned

    Labels

    CrashThis is a crash, very badMinorSeverity: Minor < Major < Critical < BlockerModRelates to Mods or modding

    Type

    Fields

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions