//======================================================================================================================= /** @author jjumbo @since 2007. 12. 11 @remarks »ç¿ë¹ý. Å×½ºÆ® ¸ðµâÀÇ ½ÃÀÛÀº TEST_MODULE_START(0~9) ¸ÞÅ©·Î ÀÌ´Ù. Å×½ºÆ® ¸ðµâÀÇ ºÐ±â´Â TEST_MODULE_ELSE ¸ÞÅ©·Î ÀÌ´Ù. ( m_bTest °¡ True OR False ¿¡µû¶ó) Å×½ºÆ® ¸ðµâÀÇ ³¡Àº TEST_MODULE_END ¸ÞÅ©·Î ÀÌ´Ù. Å×½ºÆ® ¸ðµâÀÇ TEST_MODULE_FORCE_END(0~9) ¸ÞÅ©·Î´Â m_bTest¸¦ °­Á¦·Î False ½ÃŲ´Ù.(¹Ýº¹ µÇ¼­ ½ÇÇàµÇ´Â °ÍÀ» ¸·´Â´Ù) Å×½ºÆ® ¸ðµâÀÇ È°¼ºÈ­/ ºñȰ¼ºÈ­ÀÇ ¼±ÅÃÀº NUMPAD + 0~9 ¹öưÀÌ´Ù. Å×½ºÆ® ¸ðµâÀÇ ±âº»°ªÀº TRUEÀÌ´Ù. Å×½ºÆ® ¸ðµâÀÇ VK_ADD(Űº¸µå Á¦ÀÏ ¿À¸¥ÂÊ + ¹öư)À» ´©¸§À¸·Î¼­ È­¸é¿¡ Status Á¤º¸¸¦ º¸¿©ÁÙ°ÍÀÎÁö °áÁ¤ÇÑ´Ù. ÁÖÀÇ Å×½ºÆ® ¸ðµâÀº °øµ¿À¸·Î »ç¿ëµÇ¹Ç·Î, Å×½ºÆ® ÈÄ »èÁ¦ ÇØ¾ß ÇÑ´Ù.( CheckIn ±ÝÁö) */ //======================================================================================================================= #pragma once #include "Singleton.h" #ifdef MAKE_TEST_MODULE_MACRO #define START_TEST_MODULE(iTestModule, ModuleName) \ TestModule::Instance()->SetModuleName(iTestModule, #ModuleName); \ if( TestModule::Instance()->GetTestMode(iTestModule) ) { \ #define END_TEST_MODULE } #define ELSE_TEST_MODULE } else { #define FORCE_END_TEST_MODULE(iTestCase) TestModule::Instance()->SetTestMode(iTestCase, FALSE); } class TestModule : public Singleton { struct stModuleStatus { bool bTest; util::_tstring tszModuleName; }; #define NUM_TEST_CASE 10 #define UPDATE_TICK 200 public: enum { TestMode_Show_Damage_info = 9, }; TestModule(); ~TestModule(); void SetTestMode(int iTestCase, bool val); void ToggleTestMode(int iTestCase); bool GetTestMode(int iTestCase); void ProceeInput(DWORD dwTick); void TestStatusTextOut(); void SetModuleName(int iTestCase, TCHAR * pModuleName); protected: bool invariant(int iTestCase); private: DWORD m_dwUpdateTick; bool m_bStatusTextOut; stModuleStatus m_stModuleState[NUM_TEST_CASE]; }; #endif //MAKE_TEST_MODULE_MACRO