Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

unit app_game_player;

interface

uses sux_constant, sux_object, app_constant;

type
  TSettings=record
    name: SXStringS;
    score:SXInt;
    control: SXState;
    index: SXInt;
  end;
  SAGPlayer=class(SUXObject)
    settings:TSettings;

    function isHumanPlayer: SXBool;
    function isCPUPlayer: SXBool;
    function getControl: SXState;

    procedure gainScore;
    procedure setupPlayer(const control: SXState);
    procedure setupHumanControl;
    procedure setupCPUControl;

    procedure onTimer;

    procedure initialize;
    constructor Create(const parent: TObject; const index: SXInt; const control: SXState);
    destructor Destroy; override;
  end;

implementation

uses main;


// --- SAGPlayer


function SAGPlayer.isHumanPlayer: SXBool;
begin
  result := (settings.control = SX_PLAYER_CONTROL_LOCAL);
end;


function SAGPlayer.isCPUPlayer: SXBool;
begin
  result := (settings.control = SX_PLAYER_CONTROL_CPU);
end;


function SAGPlayer.getControl: SXState;
begin
  result := settings.control;
end;




procedure SAGPlayer.gainScore;
begin
  inc(settings.score);
end;


procedure SAGPlayer.setupPlayer(const control: SXState);
begin
  case control of
    SX_PLAYER_CONTROL_LOCAL   : case settings.index of
                                  1 : settings.name := app.ini.settings.player1.playername;
                                  2 : settings.name := app.ini.settings.player2.playername;
                                end;
    SX_PLAYER_CONTROL_CPU     : case settings.index of
                                  1 : settings.name := app.ini.settings.player1.cpuname;
                                  2 : settings.name := app.ini.settings.player2.cpuname;
                                end;
  else
    settings.name := 'Player';
  end;
  settings.score := 0;
  settings.control := control;
end;


procedure SAGPlayer.setupHumanControl;
begin
  // Reset score for both players
  app.game.getPlayer1.settings.score := 0;
  app.game.getPlayer2.settings.score := 0;

  setupPlayer(SX_PLAYER_CONTROL_LOCAL);
end;


procedure SAGPlayer.setupCPUControl;
begin
  // Reset score for both players
  app.game.getPlayer1.settings.score := 0;
  app.game.getPlayer2.settings.score := 0;

  setupPlayer(SX_PLAYER_CONTROL_CPU);
end;




procedure SAGPlayer.onTimer;
begin
end;




procedure SAGPlayer.initialize;
begin
end;


constructor SAGPlayer.Create(const parent: TObject; const index: SXInt; const control: SXState);
begin
  inherited Create(parent,'Game Player');

  settings.index := index;
  setupPlayer(control);
end;


destructor SAGPlayer.Destroy;
begin
  inherited;
end;


end.