void UI_SaberAttachToChar( itemDef_t *item ) { int numSabers = 1; int saberNum = 0; if ( item->ghoul2.size() > 2 && item->ghoul2[2].mModelindex >=0 ) {//remove any extra models DC->g2_RemoveGhoul2Model(item->ghoul2, 2); } if ( item->ghoul2.size() > 1 && item->ghoul2[1].mModelindex >=0) {//remove any extra models DC->g2_RemoveGhoul2Model(item->ghoul2, 1); } if ( uiInfo.movesTitleIndex == 4 /*MD_DUAL_SABERS*/ ) { numSabers = 2; } for ( saberNum = 0; saberNum < numSabers; saberNum++ ) { //bolt sabers char modelPath[MAX_QPATH]; char skinPath[MAX_QPATH]; char saber[MAX_QPATH]; UI_GetSaberForMenu( saber, saberNum ); if ( UI_SaberModelForSaber( saber, modelPath ) ) {//successfully found a model int g2Saber = DC->g2_InitGhoul2Model(item->ghoul2, modelPath, 0, 0, 0, 0, 0); //add the model if (g2Saber) { //get the customSkin, if any if ( UI_SaberSkinForSaber( saber, skinPath ) ) { int g2skin = DC->registerSkin(skinPath); DC->g2_SetSkin( &item->ghoul2[g2Saber], 0, g2skin );//this is going to set the surfs on/off matching the skin file } else { DC->g2_SetSkin( &item->ghoul2[g2Saber], -1, 0 );//turn off custom skin } int boltNum; if ( saberNum == 0 ) { boltNum = G2API_AddBolt(&item->ghoul2[0], "*r_hand"); } else { boltNum = G2API_AddBolt(&item->ghoul2[0], "*l_hand"); } G2API_AttachG2Model(&item->ghoul2[g2Saber], &item->ghoul2[0], boltNum, 0); } } } }
void UI_SaberAttachToChar( itemDef_t *item ) { int numSabers = 1; int saberNum = 0; if ( trap_G2API_HasGhoul2ModelOnIndex(&(item->ghoul2),2) ) {//remove any extra models trap_G2API_RemoveGhoul2Model(&(item->ghoul2), 2); } if ( trap_G2API_HasGhoul2ModelOnIndex(&(item->ghoul2),1) ) {//remove any extra models trap_G2API_RemoveGhoul2Model(&(item->ghoul2), 1); } if ( uiInfo.movesTitleIndex == 4 /*MD_DUAL_SABERS*/ ) { numSabers = 2; } for ( saberNum = 0; saberNum < numSabers; saberNum++ ) { //bolt sabers char modelPath[MAX_QPATH]; char skinPath[MAX_QPATH]; char saber[MAX_QPATH]; UI_GetSaberForMenu( saber, saberNum ); if ( UI_SaberModelForSaber( saber, modelPath ) ) {//successfully found a model int g2Saber = trap_G2API_InitGhoul2Model( &(item->ghoul2), modelPath, 0, 0, 0, 0, 0 ); //add the model if ( g2Saber ) { int boltNum; //get the customSkin, if any if ( UI_SaberSkinForSaber( saber, skinPath ) ) { int g2skin = trap_R_RegisterSkin(skinPath); trap_G2API_SetSkin( item->ghoul2, g2Saber, 0, g2skin );//this is going to set the surfs on/off matching the skin file } else { trap_G2API_SetSkin( item->ghoul2, g2Saber, 0, 0 );//turn off custom skin } if ( saberNum == 0 ) { boltNum = trap_G2API_AddBolt( item->ghoul2, 0, "*r_hand"); } else { boltNum = trap_G2API_AddBolt( item->ghoul2, 0, "*l_hand"); } trap_G2API_AttachG2Model( item->ghoul2, g2Saber, item->ghoul2, boltNum, 0); } } } }
void UI_SaberDrawBlades( itemDef_t *item, vec3_t origin, float curYaw ) { //NOTE: only allows one saber type in view at a time char saber[MAX_QPATH]; int saberNum = 0; int saberModel = 0; int numSabers = 1; if ( (item->flags&ITF_ISCHARACTER)//hacked sabermoves sabers in character's hand && uiInfo.movesTitleIndex == 4 /*MD_DUAL_SABERS*/ ) { numSabers = 2; } for ( saberNum = 0; saberNum < numSabers; saberNum++ ) { if ( (item->flags&ITF_ISCHARACTER) )//hacked sabermoves sabers in character's hand { UI_GetSaberForMenu( saber, saberNum ); saberModel = saberNum + 1; } else if ( (item->flags&ITF_ISSABER) ) { DC->getCVarString( "ui_saber", saber, sizeof(saber) ); saberModel = 0; } else if ( (item->flags&ITF_ISSABER2) ) { DC->getCVarString( "ui_saber2", saber, sizeof(saber) ); saberModel = 0; } else { return; } if ( saber[0] ) { int numBlades = UI_SaberNumBladesForSaber( saber ); if ( numBlades ) {//okay, here we go, time to draw each blade... char saberTypeString[MAX_QPATH]={0}; UI_SaberTypeForSaber( saber, saberTypeString ); saberType_t saberType = TranslateSaberType( saberTypeString ); for ( int curBlade = 0; curBlade < numBlades; curBlade++ ) { if ( UI_SaberShouldDrawBlade( saber, curBlade ) ) { UI_SaberDrawBlade( item, saber, saberModel, saberType, origin, curYaw, curBlade ); } } } } } }
void UI_SaberDrawBlades( itemDef_t *item, vector3 *origin, vector3 *angles ) { //NOTE: only allows one saber type in view at a time char saber[MAX_QPATH]; int saberNum = 0; int saberModel = 0; int numSabers = 1; if ( (item->flags&ITF_ISCHARACTER)//hacked sabermoves sabers in character's hand && uiInfo.movesTitleIndex == 4 /*MD_DUAL_SABERS*/ ) { numSabers = 2; } for ( saberNum = 0; saberNum < numSabers; saberNum++ ) { if ( (item->flags&ITF_ISCHARACTER) )//hacked sabermoves sabers in character's hand { UI_GetSaberForMenu( saber, saberNum ); saberModel = saberNum + 1; } else if ( (item->flags&ITF_ISSABER) ) { trap->Cvar_VariableStringBuffer( "ui_saber", saber, sizeof(saber) ); if ( !UI_SaberValidForPlayerInMP( saber ) ) { trap->Cvar_Set( "ui_saber", "kyle" ); trap->Cvar_VariableStringBuffer( "ui_saber", saber, sizeof(saber) ); } saberModel = 0; } else if ( (item->flags&ITF_ISSABER2) ) { trap->Cvar_VariableStringBuffer( "ui_saber2", saber, sizeof(saber) ); if ( !UI_SaberValidForPlayerInMP( saber ) ) { trap->Cvar_Set( "ui_saber2", "kyle" ); trap->Cvar_VariableStringBuffer( "ui_saber2", saber, sizeof(saber) ); } saberModel = 0; } else { return; } if ( saber[0] ) { saberType_t saberType; int curBlade = 0; int numBlades = UI_SaberNumBladesForSaber( saber ); if ( numBlades ) {//okay, here we go, time to draw each blade... char saberTypeString[MAX_QPATH] = { 0 }; UI_SaberTypeForSaber( saber, saberTypeString ); saberType = TranslateSaberType( saberTypeString ); for ( curBlade = 0; curBlade < numBlades; curBlade++ ) { if ( UI_SaberShouldDrawBlade( saber, curBlade ) ) { UI_SaberDrawBlade( item, saber, saberModel, saberType, origin, angles, curBlade ); } } } } } }