#pragma once #include "SContents.h" #include "IHuntaHolicSystem.h" class SHuntaHolicSystem : public SContents< SHuntaHolicSystem > { public: SHuntaHolicSystem( const char* name, SContentsManager& contentsMgr ); void process( DWORD time ); void reset(); void reqInstanceList( int page = 1 ) const; void reqCreateInstance(); void reqJoinInstance( int index ); void reqLeaveInstance() const; void reqLeaveHuntaHolic(); void reqBeginHuntaHolic(); const HuntaHolicLobby& getLobby() const { return mLobby; } const HuntaHolicInstanceList& getInstanceList() const { return mInstanceList; } const HuntaHolicInstance& getMyInstance() const { return mMyInstance; } const HuntaHolicScore& getMyScore() const { return mMyScore; } const AR_TIME& getArTimeLimit() const { return mTimeLimit; } unsigned int getArTimeLimitByMinutes() const; void* Perform( KID id, KArg& msg ); bool isHunting() const { return mInstanceStartTime != 0; } bool isInInstance() const { return mMyInstance.isValid(); } bool isObjCompleted() const; #if defined( __TEST_HUNTAHOLICSYSTEM ) void testInstanceList(); #endif private: void beginHunting( AR_TIME beginTime ) { mInstanceStartTime = beginTime; } void endHunting() { mInstanceStartTime = 0; } // game message callback void onInstanceList( SGameMessage* msg ); void onInstanceInfo( SGameMessage* msg ); void onHuntingScore( SGameMessage* msg ); void onUpdateScore( SGameMessage* msg ); void onBeginHunting( SGameMessage* msg ); void onChangeLocation( SGameMessage* msg ); void onMsgResult( SGameMessage* msg ); void onMaxPointAchieved( SGameMessage* msg ); // sonador #2.1.2.11.5 // hunta holic system callback void onCreateInstance( const TS_CS_HUNTAHOLIC_CREATE_INSTANCE& createArg ) const; void onConfirmPassword( const char* password ) const; void enterHuntaHolic(); void leaveHuntaHolic(); typedef struct _InstanceFinder { _InstanceFinder( int instanceNo ) : _instanceNo( instanceNo ) {} bool operator () ( const HuntaHolicInstance& o ) const { return ( _instanceNo == o.instance_no ); } int _instanceNo; } InstanceFinder; HuntaHolicLobby mLobby; HuntaHolicInstanceList mInstanceList; HuntaHolicInstance mMyInstance; HuntaHolicScore mMyScore; AR_TIME mTimeLimit; AR_TIME mInstanceStartTime; SGuiObj mGuiLobby; SGuiObj mGuiInstance; SGuiObj mGuiScoreBoard; SGuiObj mGuiResult; SGuiObj mGuiCreateInstance; SGuiObj mGuiConfirmPassword; SGuiObj mGuiPartyCommand; bool mIsInHuntaHolic; };