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