//------------------------------------------------------------------------------ // StateSit.cpp // (C) 2005 Webzen Sunstudio //------------------------------------------------------------------------------ #include "SunClientPrecompiledHeader.h" #include "statebase.h" #include "StateWingsSpread.h" #include "player.h" #include "hero.h" #include "CastDialog.h" #include "RiderContainer.h" #include "HeroActionInput.h" #include "RidingInfoParser.h" #include "CharInfoParser.h" #include "InterfaceManager.h" #include "GlobalFunc.h" #include //------------------------------------------------------------------------------ StateWingsSpread::StateWingsSpread(void) { } //------------------------------------------------------------------------------ StateWingsSpread::~StateWingsSpread(void) { } //------------------------------------------------------------------------------ BOOL StateWingsSpread::CanTransite(Object* pOwner, DWORD CurTime, StateBase* pToTransiteState) { switch(pToTransiteState->GetStateKind()) { case 0: break; } return TRUE; } //------------------------------------------------------------------------------ bool StateWingsSpread::CanTransite(StateBase* from_state) { if (from_state == NULL) { return false; } switch (from_state->GetStateKind()) { case STATE::MOVE: case STATE::KEYBOARDMOVE: case STATE::IDLE: case STATE::SIT: return true; } return false; } //------------------------------------------------------------------------------ STATECHANGE::TYPE StateWingsSpread::OnStart(Object* pOwner, DWORD CurTime) { if (pOwner->IsKindOfObject(PLAYER_OBJECT) == FALSE) { assert(pOwner->IsKindOfObject(PLAYER_OBJECT)); return STATECHANGE::FAILED; } if (pOwner == g_pHero) { if (g_pHero->SendWingsControlByAccessory(true, true) == false) { return STATECHANGE::FAILED; } } //! ¾Ö´Ï¸ÞÀÌ ¼Ç¶§¹®¿¡ ¸ÕÀú ³¯°³¸¦ ¼ÂÆÃÇÑ´Ù. //! ÆÐŶ(MSG_CG_SYNC_WINGS_CONTROL_CMD) ¹Þ´ÂºÎºÐ(¼º°ø/½ÇÆÐ ¸ðµÎ)¿¡¼­ Çѹø´õ ¼ÂÆÃÀ» ÇÑ´Ù. static_cast(pOwner)->set_spread_wings(true); static_cast(pOwner)->SetPlayerAnimation(StrToWzID("N520"), eANI_WINGS_SPREAD, FALSE); return STATECHANGE::SUCCESS; } //------------------------------------------------------------------------------ STATEPROCESS::TYPE StateWingsSpread::OnProcess(Object* pOwner, DWORD CurTime, DWORD dwTick) { if (pOwner->IsKindOfObject(PLAYER_OBJECT) == FALSE) { assert(pOwner->IsKindOfObject(PLAYER_OBJECT)); return STATEPROCESS::END; } Player* player_ptr = static_cast(pOwner); if (player_ptr->ProcessAnimation(dwTick) >= 100.0f) { return STATEPROCESS::END; } // ´ëºÎºÐÀÇ State¿¡¼­ °øÅëÀûÀ¸·Î ó¸®ÇÏ´Â »óź¯È­¸¦ ó¸®ÇÑ´Ù. if (player_ptr->CommonStateProcess()) { return STATEPROCESS::SUSPEND; } return STATEPROCESS::HOLD; } //------------------------------------------------------------------------------ /** */ STATECHANGE::TYPE StateWingsSpread::OnEnd(Object* pOwner, DWORD CurTime) { return STATECHANGE::SUCCESS; }