1 #ifndef __SCORE_SCREEN_COMMON_H__
2 #define __SCORE_SCREEN_COMMON_H__
3 
4 #include "../../SharedDefines.h"
5 #include "../../Process/ProcessMgr.h"
6 #include "../../Events/Events.h"
7 #include "../../Events/EventMgr.h"
8 
9 //=================================================================================================
10 // Common structs
11 //=================================================================================================
12 
13 struct ScoreRowDef
14 {
ScoreRowDefScoreRowDef15     ScoreRowDef()
16     {
17         scoreItemImagePath = "";
18         scoreItemPickupSound = "";
19         scoreItemPointsWorth = 0;
20         countOfPickedUpScoreItems = 0;
21         countOfMapScoreItems = 0;
22     }
23 
24     std::string scoreItemImagePath;
25     AnimationDef scoreItemAnimationDef;
26     std::string scoreItemPickupSound;
27     Point rowStartPosition;
28     int scoreItemPointsWorth;
29     int countOfPickedUpScoreItems;
30     int countOfMapScoreItems;
31     Point collectedScoreItemSpawnPosition;
32     std::vector<std::string> alternativeImagesList;
33 };
34 
35 //=================================================================================================
36 // Events bound to ScoreScreen
37 //=================================================================================================
38 
39 class EventData_Finished_Loading_Row : public BaseEventData
40 {
41 public:
42     static const EventType sk_EventType;
43 
EventData_Finished_Loading_Row()44     EventData_Finished_Loading_Row() { }
45 
VGetEventType(void)46     virtual const EventType& VGetEventType(void) const { return sk_EventType; }
VCopy()47     virtual IEventDataPtr VCopy() const
48     {
49         return IEventDataPtr(new EventData_Finished_Loading_Row());
50     }
VSerialize(std::ostringstream & out)51     virtual void VSerialize(std::ostringstream& out) const { assert(false && "Cannot be serialized"); }
VDeserialize(std::istringstream & in)52     virtual void VDeserialize(std::istringstream& in) { assert(false && "Cannot be serialized"); }
53 
GetName(void)54     virtual const char* GetName(void) const { return "EventData_Finished_Loading_Row"; }
55 };
56 
57 class EventData_ScoreScreen_Level_Score_Added : public BaseEventData
58 {
59 public:
60     static const EventType sk_EventType;
61 
EventData_ScoreScreen_Level_Score_Added(int addedScore)62     EventData_ScoreScreen_Level_Score_Added(int addedScore) : m_AddedScore(addedScore) { }
63 
VGetEventType(void)64     virtual const EventType& VGetEventType(void) const { return sk_EventType; }
VCopy()65     virtual IEventDataPtr VCopy() const
66     {
67         return IEventDataPtr(new EventData_ScoreScreen_Level_Score_Added(m_AddedScore));
68     }
VSerialize(std::ostringstream & out)69     virtual void VSerialize(std::ostringstream& out) const { assert(false && "Cannot be serialized"); }
VDeserialize(std::istringstream & in)70     virtual void VDeserialize(std::istringstream& in) { assert(false && "Cannot be serialized"); }
71 
GetName(void)72     virtual const char* GetName(void) const { return "EventData_ScoreScreen_Level_Score_Added"; }
73 
GetAddedScore()74     int GetAddedScore() { return m_AddedScore; }
75 
76 private:
77     int m_AddedScore;
78 };
79 
80 //=================================================================================================
81 // Common functions
82 //=================================================================================================
83 
84 StrongActorPtr SpawnImageActor(const std::string& imagePath, Point position, const AnimationDef& aniDef = AnimationDef());
85 void UpdateScoreImageNumbers(int newNumber, ActorList& imageNumberActorList);
86 void AddNumberImageActorsToList(int numberToDisplay, int futureMaximumNumber, Point position, ActorList& toList);
87 int DigitCharToInt(char c);
88 
89 #endif