Major update
Created top hak for crafting dialog. Moved Bioware creature abilities to top hak. Fixed DMFI wand handouts. Added DMFI language handouts. Added CCOH 6. Disabled PC corpse system. Modified new player startup system. Full compile. Updated release archive.
This commit is contained in:
100
_module/nss/mk_pre_wings.nss
Normal file
100
_module/nss/mk_pre_wings.nss
Normal file
@@ -0,0 +1,100 @@
|
||||
#include "mk_inc_generic"
|
||||
#include "mk_inc_states"
|
||||
#include "mk_inc_2da_disp"
|
||||
#include "mk_inc_ccoh_db"
|
||||
|
||||
|
||||
const string MK_WINGS_TYPE_SAVE = "MK_WINGS_TYPE_SAVE";
|
||||
|
||||
void RestoreOriginalWings(object oPC)
|
||||
{
|
||||
string sIAStr = GetLocalString(oPC, MK_WINGS_TYPE_SAVE);
|
||||
MK_DEBUG_TRACE("Restoring original wings type: '"+sIAStr+"'");
|
||||
if (sIAStr!="")
|
||||
{
|
||||
MK_CCOH_DB_IAStrToBodyAppearance(oPC, sIAStr, MK_CCOH_DB_BODY_APPR_WINGS);
|
||||
DeleteLocalString(oPC, MK_WINGS_TYPE_SAVE);
|
||||
}
|
||||
}
|
||||
|
||||
void SaveOriginalWings(object oPC)
|
||||
{
|
||||
string sIAStr = GetLocalString(oPC, MK_WINGS_TYPE_SAVE);
|
||||
if (sIAStr=="")
|
||||
{
|
||||
sIAStr = MK_CCOH_DB_BodyAppearanceToIAStr(oPC, MK_CCOH_DB_BODY_APPR_WINGS);
|
||||
SetLocalString(oPC, MK_WINGS_TYPE_SAVE, sIAStr);
|
||||
}
|
||||
}
|
||||
|
||||
int GetHasOriginalWings(object oPC)
|
||||
{
|
||||
string sIAStr1 = GetLocalString(oPC, MK_WINGS_TYPE_SAVE);
|
||||
string sIAStr2 = MK_CCOH_DB_BodyAppearanceToIAStr(oPC, MK_CCOH_DB_BODY_APPR_WINGS);
|
||||
return (sIAStr1=="") || (sIAStr1==sIAStr2);
|
||||
}
|
||||
|
||||
|
||||
int StartingConditional()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
object oTarget = MK_GetCurrentTarget(oPC);
|
||||
|
||||
MK_CCOH_DB_Init(oPC);
|
||||
|
||||
int nState = MK_GenericDialog_GetState();
|
||||
int nAction = MK_GenericDialog_GetAction();
|
||||
|
||||
int nCurrentPage;
|
||||
|
||||
switch (nState)
|
||||
{
|
||||
case MK_STATE_WINGS:
|
||||
nCurrentPage = MK_2DA_DISPLAY_GetCurrentPage();
|
||||
switch (nAction)
|
||||
{
|
||||
case 250:
|
||||
case 251:
|
||||
case 252:
|
||||
case 253:
|
||||
nCurrentPage = MK_2DA_DISPLAY_UpdatePage(nAction);
|
||||
break;
|
||||
case 127:
|
||||
// Restore original appearance
|
||||
RestoreOriginalWings(oTarget);
|
||||
break;
|
||||
default:
|
||||
int nNewWingType = MK_2DA_DISPLAY_GetValueAsInt(nAction);
|
||||
if (nNewWingType!=-1)
|
||||
{
|
||||
SaveOriginalWings(oTarget);
|
||||
SetCreatureWingType(nNewWingType, oTarget);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
nState = MK_STATE_WINGS;
|
||||
MK_2DA_DISPLAY_Initialize("wingmodel", "", "LABEL", "", "", 300);
|
||||
MK_2DA_DISPLAY_EnsureVisible(GetCreatureWingType(oTarget));
|
||||
nCurrentPage = MK_2DA_DISPLAY_GetCurrentPage();
|
||||
MK_GenericDialog_SetState(nState);
|
||||
CISetCurrentModMode(oPC, MK_CI_MODMODE_BODY);
|
||||
MK_AddTemporaryEffects(oPC, MK_TAG_TEMP_EFFECT, FALSE, oTarget);
|
||||
break;
|
||||
}
|
||||
|
||||
switch (nState)
|
||||
{
|
||||
case MK_STATE_WINGS:
|
||||
MK_DELIMITER_Initialize();
|
||||
|
||||
MK_2DA_DISPLAY_DisplayPage(nCurrentPage, GetCreatureWingType(oTarget));
|
||||
|
||||
MK_GenericDialog_SetCondition(127, !GetHasOriginalWings(oTarget));
|
||||
MK_GenericDialog_SetCondition(254, MK_CCOH_DB_GetIsBodyChanged(oTarget));
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
Reference in New Issue
Block a user