const char* FN_weapon_type(int weapon) { #define FN_NAME(weapon) case weapon: return #weapon switch (weapon) { FN_NAME(WEAPON_SWORD); FN_NAME(WEAPON_DAGGER); FN_NAME(WEAPON_BOW); FN_NAME(WEAPON_TWO_HANDED); FN_NAME(WEAPON_BELL); FN_NAME(WEAPON_FAN); FN_NAME(WEAPON_ARROW); FN_NAME(WEAPON_MOUNT_SPEAR); FN_NAME(WEAPON_NUM_TYPES); } return "UNKNOWN"; #undef FN_NAME }
const char* FN_race_name(int race) { #define FN_NAME(race) case race: return #race switch (race) { FN_NAME(MAIN_RACE_WARRIOR_M); FN_NAME(MAIN_RACE_ASSASSIN_W); FN_NAME(MAIN_RACE_SURA_M); FN_NAME(MAIN_RACE_SHAMAN_W); FN_NAME(MAIN_RACE_WARRIOR_W); FN_NAME(MAIN_RACE_ASSASSIN_M); FN_NAME(MAIN_RACE_SURA_W); FN_NAME(MAIN_RACE_SHAMAN_M); FN_NAME(MAIN_RACE_MAX_NUM); } return "UNKNOWN"; #undef FN_NAME }
LTRESULT CLTCommonClient::GetAttachmentObjects(HATTACHMENT hAttachment, HOBJECT &hParent, HOBJECT &hChild) { FN_NAME(CLTCommonClient::GetAttachmentObjects); Attachment *pAttachment; pAttachment = (Attachment *)hAttachment; if (!pAttachment) { ERR(1, LT_INVALIDPARAMS); } hChild = g_pClientMgr->FindObject(pAttachment->m_nChildID); hParent = g_pClientMgr->FindObject(pAttachment->m_nParentID); if (!hParent || !hChild) { ERR(1, LT_NOTINITIALIZED); } return LT_OK; }
LTRESULT CLTCommonClient::SetObjectFilenames(HOBJECT pObj, ObjectCreateStruct *pStruct) { FN_NAME(CLTCommonClient::SetObjectFilenames); InternalObjectSetup objectSetup; uint32 i; CHECK_PARAMS2(pStruct && pObj && (pObj->m_ObjectType == OT_MODEL || pObj->m_ObjectType == OT_SPRITE)); // Unload un-used model textures.. if (pObj->m_ObjectType == OT_MODEL) { //This function is currently not being called because it would constantly remove textures //and ruin caching. This leads to some wasted texture memory during the course of a level, //but does help prevent hitching //g_pClientMgr->FreeUnusedModelTextures(pObj); } // Setup the InternalObjectSetup. objectSetup.m_pSetup = pStruct; objectSetup.m_Filename[0].m_pFilename = pStruct->m_Filename; objectSetup.m_Filename[0].m_FileType = FILE_ANYFILE; for (i=0; i < MAX_MODEL_TEXTURES; i++) { objectSetup.m_SkinNames[i].m_pFilename = pStruct->m_SkinNames[i]; objectSetup.m_SkinNames[i].m_FileType = FILE_ANYFILE; } for(i=0; i < MAX_MODEL_RENDERSTYLES; i++) { objectSetup.m_RenderStyleNames[i].m_pFilename = pStruct->m_RenderStyleNames[i]; objectSetup.m_RenderStyleNames[i].m_FileType = FILE_ANYFILE; } // Init return so_ExtraInit(pObj, &objectSetup, LTFALSE); }
LTRESULT CLTCommonClient::SetObjectResource(HOBJECT pObj, EObjectResource eType, uint32 nIndex, const char* pszResource) { FN_NAME(CLTCommonClient::SetObjectResource); CHECK_PARAMS2(pObj && (pObj->m_ObjectType == OT_MODEL || pObj->m_ObjectType == OT_SPRITE)); ObjectCreateStruct ocs; ocs.Clear(); if(pObj->m_ObjectType == OT_MODEL) { if(eType == eObjectResource_ObjectFile) { LTStrCpy(ocs.m_Filename, pszResource, MAX_CS_FILENAME_LEN); } else if(eType == eObjectResource_Texture) { assert(nIndex < MAX_MODEL_TEXTURES); LTStrCpy(ocs.m_SkinNames[nIndex], pszResource, MAX_CS_FILENAME_LEN); } else if(eType == eObjectResource_RenderStyle) { assert(nIndex < MAX_MODEL_RENDERSTYLES); LTStrCpy(ocs.m_RenderStyleNames[nIndex], pszResource, MAX_CS_FILENAME_LEN); } return SetObjectFilenames(pObj, &ocs); } else { assert(eType == eObjectResource_ObjectFile); LTStrCpy(ocs.m_Filename, pszResource, MAX_CS_FILENAME_LEN); return SetObjectFilenames(pObj, &ocs); } //return the error code return LT_OK; }
FN_TYPE __sg_FN_NAME(spdid_t spdid, ARG1_T ARG1_V) { FN_TYPE ret; ret = FN_NAME(spdid, ARG1_V); return ret; }