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.
173 lines
5.6 KiB
Plaintext
173 lines
5.6 KiB
Plaintext
#include "mk_inc_craft"
|
|
#include "mk_inc_generic"
|
|
#include "mk_inc_ccoh_db"
|
|
#include "mk_inc_states"
|
|
|
|
int StartingConditional()
|
|
{
|
|
object oPC = GetPCSpeaker();
|
|
object oTarget = MK_GetCurrentTarget(oPC);
|
|
object oItem;
|
|
|
|
MK_CCOH_DB_Init(oPC);
|
|
|
|
int nAction = MK_GenericDialog_GetAction(TRUE);
|
|
int nState = MK_GenericDialog_GetState();
|
|
|
|
switch (nState)
|
|
{
|
|
case MK_STATE_DATABASE_3:
|
|
MK_DEBUG_TRACE("mk_im_start: GetState=MK_STATE_DATABASE_3");
|
|
switch (nAction)
|
|
{
|
|
case 250:
|
|
{
|
|
int nSelectedIASStrTypes = MK_CCOH_DB_GetSelectedIASStrTypes(oPC);
|
|
switch (MK_CCOH_DB_GetReadWriteMode(oPC))
|
|
{
|
|
case MK_CCOH_DB_READ:
|
|
switch (CIGetCurrentModMode(oPC))
|
|
{
|
|
case X2_CI_MODMODE_ARMOR:
|
|
case X2_CI_MODMODE_WEAPON:
|
|
case MK_CI_MODMODE_CLOAK:
|
|
case MK_CI_MODMODE_HELMET:
|
|
case MK_CI_MODMODE_SHIELD:
|
|
{
|
|
oItem = CIGetCurrentModItem(oPC);
|
|
|
|
object oItemQ = MK_CCOH_DB_ReadItemAppearanceFromDatabase(
|
|
oPC, oItem,
|
|
MK_CCOH_DB_GetCurrentSlot(oPC),
|
|
nSelectedIASStrTypes);
|
|
if (GetIsObjectValid(oItemQ))
|
|
{
|
|
DestroyObject(oItem);
|
|
oItem = oItemQ;
|
|
CISetCurrentModItem(oPC, oItem);
|
|
MK_EquipModifiedItem(oTarget, oPC);
|
|
SendMessageToPC(oPC, "Appearance read from database!");
|
|
}
|
|
else
|
|
{
|
|
SendMessageToPC(oPC, "Failed to read appearance from database!");
|
|
}
|
|
}
|
|
// case MK_CI_MODMODE_BODY:
|
|
// break;
|
|
}
|
|
break;
|
|
case MK_CCOH_DB_WRITE:
|
|
switch (CIGetCurrentModMode(oPC))
|
|
{
|
|
case X2_CI_MODMODE_ARMOR:
|
|
case X2_CI_MODMODE_WEAPON:
|
|
case MK_CI_MODMODE_CLOAK:
|
|
case MK_CI_MODMODE_HELMET:
|
|
case MK_CI_MODMODE_SHIELD:
|
|
oItem = CIGetCurrentModItem(oPC);
|
|
if (MK_CCOH_DB_WriteItemAppearanceToDatabase(
|
|
oPC, oItem,
|
|
MK_CCOH_DB_GetCurrentSlot(oPC),
|
|
nSelectedIASStrTypes,
|
|
MK_CCOH_DB_GetCurrentSlotName(oPC)))
|
|
{
|
|
SendMessageToPC(oPC, "Appearance written to database!");
|
|
}
|
|
else
|
|
{
|
|
SendMessageToPC(oPC, "Failed to write appearance to database!");
|
|
}
|
|
break;
|
|
// case MK_CI_MODMODE_BODY:
|
|
// break;
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
nState = MK_STATE_INIT;
|
|
MK_GenericDialog_SetState(nState);
|
|
break;
|
|
case MK_STATE_DATABASE_1:
|
|
MK_DEBUG_TRACE("mk_im_start: GetState=MK_STATE_DATABASE_1");
|
|
oItem = CIGetCurrentModItem(oPC);
|
|
nState = MK_STATE_INIT;
|
|
MK_GenericDialog_SetState(nState);
|
|
break;
|
|
case MK_STATE_INIT:
|
|
MK_DEBUG_TRACE("mk_im_start: GetState=MK_STATE_INIT");
|
|
switch (nAction)
|
|
{
|
|
case X2_CI_MODMODE_ARMOR:
|
|
case X2_CI_MODMODE_WEAPON:
|
|
case MK_CI_MODMODE_CLOAK:
|
|
case MK_CI_MODMODE_HELMET:
|
|
case MK_CI_MODMODE_SHIELD:
|
|
StoreCameraFacing();
|
|
CISetCurrentModMode(oPC, nAction);
|
|
MK_SetCurrentModPart(oPC, -1);
|
|
oItem = GetItemInSlot(MK_GetCurrentInventorySlot(oPC), oTarget);
|
|
// Make backup, make mirror item, call CISetCurrentModItem(), ...
|
|
MK_StartModifyItem(oPC, oItem, TRUE);
|
|
// Add light effect and immobilize player
|
|
MK_AddTemporaryEffects(oPC, MK_TAG_TEMP_EFFECT, TRUE, oTarget);
|
|
break;
|
|
default:
|
|
return FALSE;
|
|
}
|
|
break;
|
|
}
|
|
|
|
float fFacing = GetFacing(oPC);
|
|
float fDistance = 3.5f;
|
|
float fPitch = 75.0f;
|
|
|
|
switch (CIGetCurrentModMode(oPC))
|
|
{
|
|
case X2_CI_MODMODE_ARMOR:
|
|
fFacing += 180.0;
|
|
break;
|
|
case X2_CI_MODMODE_WEAPON:
|
|
fFacing += 90.0;
|
|
break;
|
|
case MK_CI_MODMODE_CLOAK:
|
|
fFacing += 315.0;
|
|
break;
|
|
case MK_CI_MODMODE_HELMET:
|
|
fFacing += 180.0;
|
|
break;
|
|
case MK_CI_MODMODE_SHIELD:
|
|
fFacing += 270.0;
|
|
break;
|
|
}
|
|
|
|
if (fFacing > 359.0)
|
|
{
|
|
fFacing -=359.0;
|
|
}
|
|
SetCameraFacing(fFacing, fDistance, fPitch, CAMERA_TRANSITION_TYPE_FAST);
|
|
|
|
// int nSlot = MK_GetCurrentInventorySlot(oPC);
|
|
// object oItem = GetItemInSlot(nSlot, oPC);
|
|
|
|
if (CIGetCurrentModMode(oPC) == MK_CI_MODMODE_CLOAK)
|
|
{
|
|
MK_GenericDialog_SetCondition(7, MK_VERSION_GetIsVersionGreaterEqual_1_69(oPC));
|
|
}
|
|
|
|
MK_GenericDialog_SetCondition(21, GetLocalInt(oPC, "MK_DISABLE_SAVE_ITEM_APPEARANCE")!=1);
|
|
|
|
int bDisableTextEditor = (MK_VERSION_GetIsVersionLower_1_69(oPC) && (GetLocalInt(oPC, "MK_DISABLE_TEXT_EDITOR") == 1));
|
|
MK_GenericDialog_SetCondition(22, !bDisableTextEditor && GetLocalInt(oPC, "MK_ENABLE_RENAME_ITEMS"));
|
|
MK_GenericDialog_SetCondition(23, !bDisableTextEditor && GetLocalInt(oPC, "MK_ENABLE_EDIT_DESCRIPTION"));
|
|
MK_GenericDialog_SetCondition(24, !MK_GetHiddenWhenEquipped(oItem));
|
|
|
|
MK_SetCustomTokenByItemTypeName(oTarget, oPC);
|
|
|
|
// MK_VerifyCurrentModItem(oPC, "mk_im_start(end)");
|
|
|
|
return TRUE;
|
|
}
|