Changeset 401 for tags/1.4.0/Units.pas


Ignore:
Timestamp:
Jan 6, 2025, 11:12:12 AM (3 days ago)
Author:
chronos
Message:

Merged revision(s) 396-400 from trunk:

  • Fixed: Charts form chart was not drawn on the initial show.
  • Fixed: Run Randomize only once at startup.
  • Fixed: Store current state of RandSeed to game save.
  • Fixed: Load/store RandSeed as its Cardinal type instead of Integer.
  • Modified: Maximum number of player set to 12.
  • Fixed: Standard yellow color is too bright and not readable with white text. Used darker yellow instead.
  • Fixed: Integrity checks for id references loaded from game file.
  • Fixed: Wrong players and units id recalculation during game save causing bad references.
  • Modified: Set new created players as computer.
  • Fixed: Scale charts line width.
  • Fixed: Item form made bigger to avoid showing scrollbars.
  • Fixed: Item form string control made shorter.
Location:
tags/1.4.0
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • tags/1.4.0

  • tags/1.4.0/Units.pas

    r376 r401  
    114114  NewNode2: TDOMNode;
    115115begin
    116   RecalculateItemsId;
    117116  for I := 0 to Count - 1 do
    118117  with Items[I] do begin
     
    188187procedure TUnit.FixRefId;
    189188begin
    190   Player := TGame(Game).Players.FindById(PlayerId);
    191   Kind := TGame(Game).GameSystem.UnitKinds.FindById(KindId);
     189  if PlayerId <> 0 then begin
     190    Player := TGame(Game).Players.FindById(PlayerId);
     191    if not Assigned(Player) then
     192      raise Exception.Create('Referenced player id ' + IntToStr(PlayerId) + ' not found.');
     193  end else Player := nil;
     194
     195  if KindId <> 0 then begin
     196    Kind := TGame(Game).GameSystem.UnitKinds.FindById(KindId);
     197    if not Assigned(Kind) then
     198      raise Exception.Create('Referenced unit kind id ' + IntToStr(KindId) + ' not found.');
     199  end else Kind := nil;
    192200end;
    193201
Note: See TracChangeset for help on using the changeset viewer.