79 lines
2.4 KiB
C++
79 lines
2.4 KiB
C++
#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;
|
|
}; |