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.
149 lines
4.6 KiB
Plaintext
149 lines
4.6 KiB
Plaintext
#include "mk_inc_debug"
|
|
#include "mk_inc_generic"
|
|
#include "mk_inc_body"
|
|
#include "mk_inc_craft"
|
|
#include "mk_inc_ccoh_db"
|
|
#include "mk_inc_states"
|
|
#include "mk_inc_head"
|
|
#include "mk_inc_delimiter"
|
|
#include "mk_inc_2da_disp"
|
|
|
|
int GetIsCraftingDisabled(object oPC, int i)
|
|
{
|
|
string sVarName = "MK_DISABLE_CRAFT_" + MK_IntToString(i, 2, "0");
|
|
return (GetLocalInt(oPC, sVarName)==1);
|
|
}
|
|
|
|
int StartingConditional()
|
|
{
|
|
object oPC = GetPCSpeaker();
|
|
|
|
MK_CCOH_DB_Init(oPC);
|
|
|
|
int nState = MK_GenericDialog_GetState();
|
|
|
|
int nAction = MK_GenericDialog_GetAction();
|
|
|
|
int nCurrentPage=-1;
|
|
|
|
object oTarget = MK_GetCurrentTarget(oPC);
|
|
|
|
// MK_DEBUG_TRACE("mk_pre_head: nState="+IntToString(nState)+
|
|
// ", nAction="+IntToString(nAction));
|
|
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_BODY_SELECT:
|
|
// So the finish/cancel scripts work properly
|
|
CISetCurrentModMode(oPC, MK_CI_MODMODE_BODY);
|
|
|
|
MK_SetBodyPartToBeModified(oPC, MK_CRAFTBODY_HEAD, TRUE);
|
|
|
|
MK_HEAD_Initialize(oPC, oTarget);
|
|
|
|
MK_AddTemporaryEffects(oPC, MK_TAG_TEMP_EFFECT, FALSE, oTarget);
|
|
MK_HEAD_CreateValidHeadsString(oTarget, oPC);
|
|
|
|
MK_GenericDialog_SetState(nState = MK_STATE_HEAD_INIT);
|
|
break;
|
|
case MK_STATE_HEAD_MODIFY:
|
|
switch (nAction)
|
|
{
|
|
case 31: // show next head
|
|
case 32: // show previous head
|
|
nCurrentPage = MK_2DA_DISPLAY_EnsureVisible(MK_HEAD_SetCreatureHead(oTarget, nAction-30));
|
|
break;
|
|
case 250: // First page
|
|
case 251: // previous page
|
|
case 252: // next page
|
|
case 253: // last page
|
|
nCurrentPage = MK_2DA_DISPLAY_UpdatePage(nAction);
|
|
break;
|
|
case -1:
|
|
break;
|
|
case 39: // swap tattoo colors
|
|
MK_SwapTattooColors(oTarget);
|
|
break;
|
|
case 40: // change filter
|
|
MK_GenericDialog_SetState(nState = MK_STATE_HEAD_FILTER);
|
|
MK_2DA_DISPLAY_Initialize(MK_HEAD_Get2DAFile(oPC), "", "LABEL", "STRREF", "NAME", 10, "mk_cb_hd_f_flt");
|
|
MK_2DA_DISPLAY_SetPageLength(10);
|
|
break;
|
|
default: // select head
|
|
if ((nAction>=0) && (nAction<MK_2DA_DISPLAY_GetPageLength()))
|
|
{
|
|
int nHead = MK_2DA_DISPLAY_GetSelectedRow(nAction);
|
|
MK_HEAD_SetCreatureHead(oTarget, MK_HEAD_MODEL, nHead);
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case MK_STATE_HEAD_FILTER:
|
|
switch (nAction)
|
|
{
|
|
case 250:
|
|
case 251:
|
|
case 252:
|
|
case 253:
|
|
nCurrentPage = MK_2DA_DISPLAY_UpdatePage(nAction);
|
|
break;
|
|
case -1:
|
|
break;
|
|
case 40:
|
|
MK_GenericDialog_SetState(nState = MK_STATE_HEAD_INIT);
|
|
MK_HEAD_CreateValidHeadsString(oTarget, oPC);
|
|
MK_2DA_DISPLAY_Cleanup();
|
|
break;
|
|
default:
|
|
if ((nAction>=0) && (nAction<MK_2DA_DISPLAY_GetPageLength()))
|
|
{
|
|
int nFilterID = MK_2DA_DISPLAY_GetSelectedRow(nAction);
|
|
MK_HEAD_ToggleFilter(OBJECT_SELF, nFilterID);
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_HEAD_INIT:
|
|
{
|
|
MK_GenericDialog_SetState(nState = MK_STATE_HEAD_MODIFY);
|
|
MK_2DA_DISPLAY_InitializeVirtual(MK_HEAD_GetValidHeadsString(oTarget));
|
|
MK_2DA_DISPLAY_SetPageLength(10);
|
|
nCurrentPage = MK_2DA_DISPLAY_EnsureVisible(GetCreatureBodyPart(CREATURE_PART_HEAD, oTarget));
|
|
break;
|
|
}
|
|
}
|
|
|
|
// MK_DEBUG_TRACE("1");
|
|
nCurrentPage = MK_2DA_DISPLAY_GetCurrentPage();
|
|
// MK_DEBUG_TRACE("2");
|
|
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_HEAD_MODIFY:
|
|
MK_GenericDialog_SetCondition(39,
|
|
MK_VERSION_GetIsVersionGreaterEqual_1_69(oPC) &&
|
|
(!GetIsCraftingDisabled(oPC, 17)));
|
|
MK_2DA_DISPLAY_DisplayPage(nCurrentPage, GetCreatureBodyPart(CREATURE_PART_HEAD, oTarget), "mk_cb_hd_label", FALSE);
|
|
// MK_DEBUG_TRACE("3");
|
|
MK_SetBodyPartTokens(oPC, oTarget);
|
|
MK_GenericDialog_SetCondition(254, MK_CCOH_DB_GetIsBodyChanged(oTarget));
|
|
SetCustomToken(14432, MK_HEAD_GetSelectedFilterAsText(oPC, oTarget));
|
|
MK_DELIMITER_Initialize();
|
|
MK_GenericDialog_SetCondition(40, !GetLocalInt(oPC, MK_HEAD_DISABLE_CHANGE_FILTER));
|
|
// MK_DEBUG_TRACE("4");
|
|
break;
|
|
case MK_STATE_HEAD_FILTER:
|
|
MK_2DA_DISPLAY_DisplayPage(nCurrentPage, -1, "mk_cb_hd_f_label", FALSE);
|
|
SetCustomToken(14432, MK_HEAD_GetSelectedFilterAsText(oPC, oTarget));
|
|
SetCustomToken(14433, MK_HEAD_Get2DAFile(oPC));
|
|
MK_DELIMITER_Initialize();
|
|
break;
|
|
}
|
|
|
|
|
|
return TRUE;
|
|
}
|