Tiberian Technologies Scripts Reference Revision: 9000
Loading...
Searching...
No Matches
PlayerDataClass.h
1/* Renegade Scripts.dll
2 Copyright 2013 Tiberian Technologies
3
4 This file is part of the Renegade scripts.dll
5 The Renegade scripts.dll is free software; you can redistribute it and/or modify it under
6 the terms of the GNU General Public License as published by the Free
7 Software Foundation; either version 2, or (at your option) any later
8 version. See the file COPYING for more details.
9 In addition, an exemption is given to allow Run Time Dynamic Linking of this code with any closed source module that does not contain code covered by this licence.
10 Only the source code to the module(s) containing the licenced code has to be released.
11*/
12#ifndef TT_INCLUDE_PLAYERDATACLASS_H
13#define TT_INCLUDE_PLAYERDATACLASS_H
14#include "DataSafe.h"
15#include "ReferencerClass.h"
16#include "engine_vector.h"
17#include "SmartGameObj.h"
18class DamageableGameObj;
19class BitStreamClass;
20class PlayerDataClass
21{
22protected:
23 safe_float Score; // 0004
24 safe_float Money; // 0008
25 ReferencerClass Owner; // 000C
26 float PunishTimer; // 001C
27 float GameTime; // 0020
28 float SessionTime; // 0024
29 int EnemiesKilled; // 0028
30 int AlliesKilled; // 002C
31 int ShotsFired; // 0030
32 int HeadShots; // 0034
33 int TorsoShots; // 0038
34 int ArmShots; // 003C
35 int LegShots; // 0040
36 int CrotchShots; // 0044
37 float FinalHealth; // 0048
38 int PowerupsCollected; // 004C
39 int VehiclesDestroyed; // 0050
40 float VehicleTime; // 0054
41 int KillsFromVehicle; // 0058
42 int Squishes; // 005C
43 float CreditGrant; // 0060
44 int BuildingDestroyed; // 0064
45 int HeadHit; // 0068
46 int TorsoHit; // 006C
47 int ArmHit; // 0070
48 int LegHit; // 0074
49 int CrotchHit; // 0078
50 int WeaponFired; // 007C
51 SimpleDynVecClass<int> WeaponsFiredID; // 0080
52 SimpleDynVecClass<int> WeaponsFiredCount; // 0090
53
54public:
55 PlayerDataClass();
56 ~PlayerDataClass();
57 virtual void Reset_Player();
58 virtual void Set_Score(float score);
59 virtual void Increment_Score(float score);
60 virtual void Set_Money(float money);
61 virtual void Increment_Money(float money);
62 virtual bool Purchase_Item(int money);
63 virtual void Apply_Damage_Points(float points,DamageableGameObj *damager);
64 virtual void Apply_Death_Points(float points,DamageableGameObj *damager);
65 void Export_Occasional(BitStreamClass &BitStream);
66 void Import_Occasional(BitStreamClass &BitStream);
67 void Stats_Reset();
68 void Stats_Add_Game_Time(float time) { GameTime += time; SessionTime += time; }
69 void Stats_Add_Enemy_Killed() {EnemiesKilled++;}
70 void Stats_Add_Ally_Killed() {AlliesKilled++;}
71 void Stats_Add_Shot_Fired() {ShotsFired++;}
72 void Stats_Add_Head_Shot() {HeadShots++;}
73 void Stats_Add_Torso_Shot() {TorsoShots++;}
74 void Stats_Add_Arm_Shot() {ArmShots++;}
75 void Stats_Add_Leg_Shot() {LegShots++;}
76 void Stats_Add_Crotch_Shot() {CrotchShots++;}
77 void Stats_Set_Final_Health(float health) { FinalHealth = health; }
78 void Stats_Add_Powerup() {PowerupsCollected++;}
79 void Stats_Add_Vehicle_Destroyed() {VehiclesDestroyed++;}
80 void Stats_Add_Vehicle_Time(float time) { VehicleTime += time; }
81 void Stats_Add_Kill_From_Vehicle() {KillsFromVehicle++;}
82 void Stats_Add_Squish() {Squishes++;}
83 void Stats_Add_Credit_Grant(float grant) {CreditGrant += grant;}
84 void Stats_Add_Building_Destroyed() {BuildingDestroyed++;}
85 void Stats_Add_Torso_Hit() {TorsoHit++;}
86 void Stats_Add_Head_Hit() {HeadHit++;}
87 void Stats_Add_Arm_Hit() {ArmHit++;}
88 void Stats_Add_Leg_Hit() {LegHit++;}
89 void Stats_Add_Crotch_Hit() {CrotchHit++;}
90 void Stats_Add_Weapon_Fired(int weapon);
91 SmartGameObj *Get_GameObj() {return (SmartGameObj *)(ScriptableGameObj *)Owner;}
92 void Set_GameObj(SmartGameObj *obj) {Owner = obj;}
93 float Get_Score() const {return Score;}
94 float Get_Money() const {return Money;}
95 float Get_Session_Time() const {return SessionTime;}
96 float Get_Punish_Timer() {return PunishTimer;}
97 void Inc_Punish_Timer(float time) {PunishTimer += time;}
98
99}; // 00A0
100
101#endif