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.