Implemented new ini reading funcs in various codes

This commit is contained in:
NovaRain
2019-10-14 23:55:54 +08:00
parent b447e8e9b8
commit 90ef9e273d
31 changed files with 205 additions and 209 deletions
+2 -2
View File
@@ -186,9 +186,9 @@ void AIInit() {
MakeJump(0x45F6AF, BlockCombatHook1); // intface_use_item_
HookCall(0x4432A6, BlockCombatHook2); // game_handle_input_
GetPrivateProfileString("sfall", "BlockedCombat", "You cannot enter combat at this time.", combatBlockedMessage, 128, translationIni);
Translate("sfall", "BlockedCombat", "You cannot enter combat at this time.", combatBlockedMessage);
RetryCombatMinAP = GetPrivateProfileIntA("Misc", "NPCsTryToSpendExtraAP", 0, ini);
RetryCombatMinAP = GetConfigInt("Misc", "NPCsTryToSpendExtraAP", 0);
if (RetryCombatMinAP > 0) {
dlog("Applying retry combat patch.", DL_INIT);
HookCall(0x422B94, RetryCombatHook); // combat_turn_
+1 -1
View File
@@ -371,7 +371,7 @@ void ApplyAnimationsAtOncePatches(signed char aniMax) {
}
void AnimationsAtOnceInit() {
animationLimit = GetPrivateProfileIntA("Misc", "AnimationsAtOnceLimit", 32, ini);
animationLimit = GetConfigInt("Misc", "AnimationsAtOnceLimit", 32);
if (animationLimit > 32) {
if (animationLimit > 127) {
animationLimit = 127;
+14 -15
View File
@@ -59,32 +59,31 @@ fail:
}
void BarBoxesInit() {
memcpy(boxes, (void*)0x518FE8, 12 * 5);
for (int i = 5; i < 10; i++) {
boxes[i].msg = 100 + i;
}
std::string boxBarColors = GetConfigString("Misc", "BoxBarColours", "", 6);
if (boxBarColors.size() == 5) {
for (int i = 0; i < 5; i++) {
if (boxBarColors[i] == '1') {
boxes[i + 5].colour = 1; // red color
}
}
}
for (int i = 0; i < sizeof(bboxMemAddr) / 4; i++) {
SafeWrite32(bboxMemAddr[i], (DWORD)boxes + 8); //.mem
}
SafeWrite32(0x4612FE, (DWORD)boxes + 4); //.colour
SafeWrite32(0x46133C, (DWORD)boxes + 0); //.msg
memcpy(boxes, (void*)0x518FE8, 12 * 5);
for (int i = 5; i < 10; i++) {
boxes[i].msg = 0x69 + i - 5;
}
SafeWrite8(0x46127C, 10);
SafeWrite8(0x46140B, 10);
SafeWrite8(0x461495, 0x78);
MakeJump(0x4615A3, DisplayBoxesHook);
char buf[6];
GetPrivateProfileString("Misc", "BoxBarColours", "", buf, 6, ini);
if (strlen(buf) == 5) {
for (int i = 0; i < 5; i++) {
if (buf[i] == '1') {
boxes[i + 5].colour = 1;
}
}
}
}
bool GetBox(int i) {
+37 -37
View File
@@ -2167,7 +2167,7 @@ dude:
static char pickupMessageBuf[65] = {0};
static const char* __fastcall GetPickupMessage(const char* name) {
if (pickupMessageBuf[0] == 0) {
GetPrivateProfileString("sfall", "NPCPickupFail", "%s cannot pick up the item.", pickupMessageBuf, 64, translationIni);
Translate("sfall", "NPCPickupFail", "%s cannot pick up the item.", pickupMessageBuf, 64);
}
sprintf(textBuf, pickupMessageBuf, name);
return textBuf;
@@ -2382,13 +2382,13 @@ void BugFixesInit()
SafeWrite16(0x46A566, 0x04DB);
SafeWrite16(0x46A4E7, 0x04DB);
//if (GetPrivateProfileIntA("Misc", "SpecialUnarmedAttacksFix", 1, ini)) {
//if (GetConfigInt("Misc", "SpecialUnarmedAttacksFix", 1)) {
dlog("Applying Special Unarmed Attacks fix.", DL_INIT);
MakeJump(0x42394D, UnarmedAttacksFix);
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "SharpshooterFix", 1, ini)) {
//if (GetConfigInt("Misc", "SharpshooterFix", 1)) {
dlog("Applying Sharpshooter patch.", DL_INIT);
// http://www.nma-fallout.com/threads/fo2-engine-tweaks-sfall.178390/page-119#post-4050162
// by Slider2k
@@ -2411,7 +2411,7 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
// Fix for "Too Many Items" bug
//if (GetPrivateProfileIntA("Misc", "TooManyItemsBugFix", 1, ini)) {
//if (GetConfigInt("Misc", "TooManyItemsBugFix", 1)) {
dlog("Applying preventive patch for \"Too Many Items\" bug.", DL_INIT);
HookCall(0x4A596A, scr_write_ScriptNode_hook);
HookCall(0x4A59C1, scr_write_ScriptNode_hook);
@@ -2422,7 +2422,7 @@ void BugFixesInit()
MakeCall(0x49BE70, obj_use_power_on_car_hack);
// Fix for being able to charge the car by using cells on other scenery/critters
if (GetPrivateProfileIntA("Misc", "CarChargingFix", 1, ini)) {
if (GetConfigInt("Misc", "CarChargingFix", 1)) {
dlog("Applying car charging fix.", DL_INIT);
MakeJump(0x49C36D, protinst_default_use_item_hack);
dlogr(" Done", DL_INIT);
@@ -2442,7 +2442,7 @@ void BugFixesInit()
// Evil bug! If party member has the same armor type in inventory as currently equipped, then
// on level up he loses Armor Class equal to the one received from this armor.
// The same happens if you just order NPC to remove the armor through dialogue.
//if (GetPrivateProfileIntA("Misc", "ArmorCorruptsNPCStatsFix", 1, ini)) {
//if (GetConfigInt("Misc", "ArmorCorruptsNPCStatsFix", 1)) {
dlog("Applying fix for armor reducing NPC original stats when removed.", DL_INIT);
HookCall(0x495F3B, partyMemberCopyLevelInfo_hook_stat_level);
HookCall(0x45419B, correctFidForRemovedItem_hook_adjust_ac);
@@ -2461,7 +2461,7 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
// Allow 9 options (lines of text) to be displayed correctly in a dialog window
//if (GetPrivateProfileIntA("Misc", "DialogOptions9Lines", 1, ini)) {
//if (GetConfigInt("Misc", "DialogOptions9Lines", 1)) {
dlog("Applying 9 dialog options patch.", DL_INIT);
MakeCall(0x447021, gdProcessUpdate_hack, 1);
dlogr(" Done", DL_INIT);
@@ -2486,7 +2486,7 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
// Fix for not counting in the weight/size of equipped items on NPC when stealing or bartering
//if (GetPrivateProfileIntA("Misc", "NPCWeightFix", 1, ini)) {
//if (GetConfigInt("Misc", "NPCWeightFix", 1)) {
dlog("Applying fix for not counting in weight of equipped items on NPC.", DL_INIT);
MakeCall(0x473B4E, loot_container_hack);
HookCall(0x4758AB, barter_inventory_hook);
@@ -2502,7 +2502,7 @@ void BugFixesInit()
// Corrects the max text width of the player name in inventory to be 140 (was 80), which matches the width for item name
SafeWrite32(0x471E48, 140);
//if (GetPrivateProfileIntA("Misc", "InventoryDragIssuesFix", 1, ini)) {
//if (GetConfigInt("Misc", "InventoryDragIssuesFix", 1)) {
dlog("Applying inventory reverse order issues fix.", DL_INIT);
// Fix for minor visual glitch when picking up solo item from the top of inventory
// and there is multiple item stack at the bottom of inventory
@@ -2515,32 +2515,32 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "NPCLevelFix", 1, ini)) {
//if (GetConfigInt("Misc", "NPCLevelFix", 1)) {
dlog("Applying NPC level fix.", DL_INIT);
HookCall(0x495BC9, (void*)0x495E51); // jz 0x495E7F > jz 0x495E51
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "BlackSkilldexFix", 1, ini)) {
//if (GetConfigInt("Misc", "BlackSkilldexFix", 1)) {
dlog("Applying black Skilldex patch.", DL_INIT);
HookCall(0x497D0F, PipStatus_AddHotLines_hook);
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "FixWithdrawalPerkDescCrash", 1, ini)) {
//if (GetConfigInt("Misc", "FixWithdrawalPerkDescCrash", 1)) {
dlog("Applying withdrawal perk description crash fix.", DL_INIT);
HookCall(0x47A501, perform_withdrawal_start_display_print_hook);
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "JetAntidoteFix", 1, ini)) {
//if (GetConfigInt("Misc", "JetAntidoteFix", 1)) {
dlog("Applying Jet Antidote fix.", DL_INIT);
// the original jet antidote fix
MakeJump(0x47A013, (void*)0x47A168);
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "NPCDrugAddictionFix", 1, ini)) {
//if (GetConfigInt("Misc", "NPCDrugAddictionFix", 1)) {
dlog("Applying NPC's drug addiction fix.", DL_INIT);
// proper checks for NPC's addiction instead of always using global vars
MakeJump(0x47A644, item_d_check_addict_hack);
@@ -2548,13 +2548,13 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileInt("Misc", "ShivPatch", 1, ini)) {
//if (GetConfigInt("Misc", "ShivPatch", 1)) {
dlog("Applying shiv patch.", DL_INIT);
SafeWrite8(0x477B2B, 0xEB);
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileInt("Misc", "ImportedProcedureFix", 0, ini)) {
//if (GetConfigInt("Misc", "ImportedProcedureFix", 0)) {
dlog("Applying imported procedure patch.", DL_INIT);
// http://teamx.ru/site_arc/smf/index.php-topic=398.0.htm
SafeWrite16(0x46B35B, 0x1C60); // Fix problems with the temporary stack
@@ -2568,7 +2568,7 @@ void BugFixesInit()
SafeWrite8(0x46C7AC, 0x76); // jb > jbe
// Update the AC counter
//if (GetPrivateProfileIntA("Misc", "WieldObjCritterFix", 1, ini)) {
//if (GetConfigInt("Misc", "WieldObjCritterFix", 1)) {
dlog("Applying wield_obj_critter fix.", DL_INIT);
SafeWrite8(0x456912, 0x1E); // jnz 0x456931
HookCall(0x45697F, op_wield_obj_critter_adjust_ac_hook);
@@ -2576,7 +2576,7 @@ void BugFixesInit()
//}
// Enable party members with level 6 protos to reach level 6
//if (GetPrivateProfileIntA("Misc", "NPCStage6Fix", 1, ini)) {
//if (GetConfigInt("Misc", "NPCStage6Fix", 1)) {
dlog("Applying NPC Stage 6 Fix.", DL_INIT);
MakeJump(0x493CE9, NPCStage6Fix1); // partyMember_init_
MakeJump(0x494224, NPCStage6Fix2); // partyMemberGetAIOptions_
@@ -2585,7 +2585,7 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "MultiHexPathingFix", 1, ini)) {
//if (GetConfigInt("Misc", "MultiHexPathingFix", 1)) {
dlog("Applying MultiHex Pathing Fix.", DL_INIT);
MakeCall(0x42901F, MultiHexFix);
MakeCall(0x429170, MultiHexFix);
@@ -2595,7 +2595,7 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "DodgyDoorsFix", 1, ini)) {
//if (GetConfigInt("Misc", "DodgyDoorsFix", 1)) {
dlog("Applying Dodgy Door Fix.", DL_INIT);
MakeJump(0x4113D6, action_melee_hack);
MakeJump(0x411BCC, action_ranged_hack);
@@ -2603,7 +2603,7 @@ void BugFixesInit()
//}
// Fix for "NPC turns into a container" bug
//if (GetPrivateProfileIntA("Misc", "NPCTurnsIntoContainerFix", 1, ini)) {
//if (GetConfigInt("Misc", "NPCTurnsIntoContainerFix", 1)) {
dlog("Applying fix for \"NPC turns into a container\" bug.", DL_INIT);
MakeJump(0x42E46E, critter_wake_clear_hack);
MakeCall(0x488EF3, obj_load_func_hack, 1);
@@ -2627,7 +2627,7 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
// Fix for being unable to sell used geiger counters or stealth boys
if (GetPrivateProfileIntA("Misc", "CanSellUsedGeiger", 1, ini)) {
if (GetConfigInt("Misc", "CanSellUsedGeiger", 1)) {
dlog("Applying fix for being unable to sell used geiger counters or stealth boys.", DL_INIT);
SafeWrite8(0x478115, 0xBA);
SafeWrite8(0x478138, 0xBA);
@@ -2652,26 +2652,26 @@ void BugFixesInit()
SafeWrite8(0x4C4743, 0xC6); // cmp esi, eax
// Partial fix for incorrect positioning after exiting small locations (e.g. Ghost Farm)
//if (GetPrivateProfileIntA("Misc", "SmallLocExitFix", 1, ini)) {
//if (GetConfigInt("Misc", "SmallLocExitFix", 1)) {
dlog("Applying fix for incorrect positioning after exiting small locations.", DL_INIT);
MakeJump(0x4C5A41, wmTeleportToArea_hack);
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "PrintToFileFix", 1, ini)) {
//if (GetConfigInt("Misc", "PrintToFileFix", 1)) {
dlog("Applying print to file fix.", DL_INIT);
MakeCall(0x4C67D4, db_get_file_list_hack);
dlogr(" Done", DL_INIT);
//}
// Fix for display issues when calling gdialog_mod_barter with critters with no "Barter" flag set
//if (GetPrivateProfileIntA("Misc", "gdBarterDispFix", 1, ini)) {
//if (GetConfigInt("Misc", "gdBarterDispFix", 1)) {
dlog("Applying gdialog_mod_barter display fix.", DL_INIT);
HookCall(0x448250, gdActivateBarter_hook);
dlogr(" Done", DL_INIT);
//}
//if (GetPrivateProfileIntA("Misc", "BagBackpackFix", 1, ini)) {
//if (GetConfigInt("Misc", "BagBackpackFix", 1)) {
dlog("Applying fix for bag/backpack bugs.", DL_INIT);
// Fix for items disappearing from inventory when you try to drag them to bag/backpack in the inventory list
// and are overloaded
@@ -2697,7 +2697,7 @@ void BugFixesInit()
MakeCall(0x4396F5, Save_as_ASCII_hack, 2);
// Fix for Bonus Move APs being replenished when you save and load the game in combat
//if (GetPrivateProfileIntA("Misc", "BonusMoveFix", 1, ini)) {
//if (GetConfigInt("Misc", "BonusMoveFix", 1)) {
dlog("Applying fix for Bonus Move exploit.", DL_INIT);
HookCall(0x420E93, combat_load_hook);
MakeCall(0x422A06, combat_turn_hack);
@@ -2711,7 +2711,7 @@ void BugFixesInit()
MakeCall(0x424CD2, apply_damage_hack);
// Fix for the double damage effect of Silent Death perk not being applied to critical hits
//if (GetPrivateProfileIntA("Misc", "SilentDeathFix", 1, ini)) {
//if (GetConfigInt("Misc", "SilentDeathFix", 1)) {
dlog("Applying Silent Death patch.", DL_INIT);
SafeWrite8(0x4238DF, 0x8C); // jl loc_423A0D
HookCall(0x423A99, compute_attack_hook);
@@ -2748,7 +2748,7 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
// Display full item description for weapon/ammo in the barter screen
showItemDescription = (GetPrivateProfileIntA("Misc", "FullItemDescInBarter", 0, ini) != 0);
showItemDescription = (GetConfigInt("Misc", "FullItemDescInBarter", 0) != 0);
if (showItemDescription) {
dlog("Applying full item description in barter patch.", DL_INIT);
HookCall(0x49B452, obj_examine_func_hack_weapon); // it's jump
@@ -2756,7 +2756,7 @@ void BugFixesInit()
}
// Display experience points with the bonus from Swift Learner perk when gained from non-scripted situations
if (GetPrivateProfileIntA("Misc", "DisplaySwiftLearnerExp", 1, ini)) {
if (GetConfigInt("Misc", "DisplaySwiftLearnerExp", 1)) {
dlog("Applying Swift Learner exp display patch.", DL_INIT);
MakeCall(0x4AFAEF, statPCAddExperienceCheckPMs_hack);
HookCall(0x4221E2, combat_give_exps_hook);
@@ -2772,7 +2772,7 @@ void BugFixesInit()
SafeWrite16(0x456B76, 0x23EB); // jmp loc_456B9B (skip unused engine code)
// Fix broken op_obj_can_hear_obj_ function
if (GetPrivateProfileIntA("Misc", "ObjCanHearObjFix", 0, ini)) {
if (GetConfigInt("Misc", "ObjCanHearObjFix", 0)) {
dlog("Applying obj_can_hear_obj fix.", DL_INIT);
SafeWrite8(0x4583D8, 0x3B); // jz loc_458414
SafeWrite8(0x4583DE, 0x74); // jz loc_458414
@@ -2781,7 +2781,7 @@ void BugFixesInit()
}
// Fix for AI not checking weapon perks properly when searching for the best weapon
int bestWeaponPerkFix = GetPrivateProfileIntA("Misc", "AIBestWeaponFix", 0, ini);
int bestWeaponPerkFix = GetConfigInt("Misc", "AIBestWeaponFix", 0);
if (bestWeaponPerkFix > 0) {
dlog("Applying AI best weapon choice fix.", DL_INIT);
HookCall(0x42954B, ai_best_weapon_hook);
@@ -2806,7 +2806,7 @@ void BugFixesInit()
MakeCall(0x472F5F, inven_obj_examine_func_hack, 1);
// Fix for the exploit that allows you to gain excessive skill points from Tag! perk before leaving the character screen
//if (GetPrivateProfileIntA("Misc", "TagPerkFix", 1, ini)) {
//if (GetConfigInt("Misc", "TagPerkFix", 1)) {
dlog("Applying fix for Tag! exploit.", DL_INIT);
HookCall(0x43B463, SliderBtn_hook_down);
HookCall(0x43D7DD, Add4thTagSkill_hook);
@@ -2821,7 +2821,7 @@ void BugFixesInit()
dlogr(" Done", DL_INIT);
// Fix for the "mood" argument of start_gdialog function being ignored for talking heads
if (GetPrivateProfileIntA("Misc", "StartGDialogFix", 0, ini)) {
if (GetConfigInt("Misc", "StartGDialogFix", 0)) {
dlog("Applying start_gdialog argument fix.", DL_INIT);
MakeCall(0x456F08, op_start_gdialog_hack);
dlogr(" Done", DL_INIT);
@@ -2839,7 +2839,7 @@ void BugFixesInit()
HookCall(0x42D733, process_rads_hook);
// Fix for AI not taking chem_primary_desire in AI.txt as drug use preference when using drugs in their inventory
if (GetPrivateProfileIntA("Misc", "AIDrugUsePerfFix", 0, ini)) {
if (GetConfigInt("Misc", "AIDrugUsePerfFix", 0)) {
dlog("Applying AI drug use preference fix.", DL_INIT);
MakeCall(0x42869D, ai_check_drugs_hack_break);
MakeCall(0x4286AB, ai_check_drugs_hack_check);
@@ -2861,7 +2861,7 @@ void BugFixesInit()
// called_shot - additional damage, when the damage received by the target is above the specified minimum
// num_attacks - the number of free action points on the first turn only
// attacker_results - unused, must be 0 or not equal to the target_results argument when specifying result flags for the target
if (GetPrivateProfileIntA("Misc", "AttackComplexFix", 0, ini)) {
if (GetConfigInt("Misc", "AttackComplexFix", 0)) {
dlog("Applying attack_complex fix.", DL_INIT);
HookCall(0x456D4A, op_attack_hook);
SafeWrite8(0x456D61, 0x74); // mov [esp+x], esi
@@ -2973,7 +2973,7 @@ void BugFixesInit()
// Fix for the car being lost when entering a location via the Town/World button and then leaving on foot
// (sets GVAR_CAR_PLACED_TILE (633) to -1 on exit to the world map)
if (GetPrivateProfileIntA("Misc", "CarPlacedTileFix", 1, ini)) {
if (GetConfigInt("Misc", "CarPlacedTileFix", 1)) {
dlog("Applying car placed tile fix.", DL_INIT);
MakeCall(0x4C2367, wmInterfaceInit_hack);
dlogr(" Done", DL_INIT);
+5 -5
View File
@@ -64,18 +64,18 @@ static void __declspec(naked) compute_spray_rounds_distribution() {
void ComputeSprayModInit() {
if (GetPrivateProfileIntA("Misc", "ComputeSprayMod", 0, ini)) {
if (GetConfigInt("Misc", "ComputeSprayMod", 0)) {
dlog("Applying ComputeSpray changes.", DL_INIT);
compute_spray_center_mult = GetPrivateProfileIntA("Misc", "ComputeSpray_CenterMult", 1, ini);
compute_spray_center_div = GetPrivateProfileIntA("Misc", "ComputeSpray_CenterDiv", 3, ini);
compute_spray_center_mult = GetConfigInt("Misc", "ComputeSpray_CenterMult", 1);
compute_spray_center_div = GetConfigInt("Misc", "ComputeSpray_CenterDiv", 3);
if (compute_spray_center_div < 1) {
compute_spray_center_div = 1;
}
if (compute_spray_center_mult > compute_spray_center_div) {
compute_spray_center_mult = compute_spray_center_div;
}
compute_spray_target_mult = GetPrivateProfileIntA("Misc", "ComputeSpray_TargetMult", 1, ini);
compute_spray_target_div = GetPrivateProfileIntA("Misc", "ComputeSpray_TargetDiv", 2, ini);
compute_spray_target_mult = GetConfigInt("Misc", "ComputeSpray_TargetMult", 1);
compute_spray_target_div = GetConfigInt("Misc", "ComputeSpray_TargetDiv", 2);
if (compute_spray_target_div < 1) {
compute_spray_target_div = 1;
}
+2 -2
View File
@@ -16,9 +16,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "main.h"
#include <stdio.h>
#include "main.h"
#include "version.h"
#include "Logging.h"
+10 -10
View File
@@ -440,15 +440,15 @@ static void BodypartHitChances() {
}
static void BodypartHitReadConfig() {
bodypartHit.Head = static_cast<long>(GetPrivateProfileIntA("Misc", "BodyHit_Head", -40, ini));
bodypartHit.Left_Arm = static_cast<long>(GetPrivateProfileIntA("Misc", "BodyHit_Left_Arm", -30, ini));
bodypartHit.Right_Arm = static_cast<long>(GetPrivateProfileIntA("Misc", "BodyHit_Right_Arm", -30, ini));
bodypartHit.Torso = static_cast<long>(GetPrivateProfileIntA("Misc", "BodyHit_Torso", 0, ini));
bodypartHit.Right_Leg = static_cast<long>(GetPrivateProfileIntA("Misc", "BodyHit_Right_Leg", -20, ini));
bodypartHit.Left_Leg = static_cast<long>(GetPrivateProfileIntA("Misc", "BodyHit_Left_Leg", -20, ini));
bodypartHit.Eyes = static_cast<long>(GetPrivateProfileIntA("Misc", "BodyHit_Eyes", -60, ini));
bodypartHit.Groin = static_cast<long>(GetPrivateProfileIntA("Misc", "BodyHit_Groin", -30, ini));
bodypartHit.Uncalled = static_cast<long>(GetPrivateProfileIntA("Misc", "BodyHit_Torso_Uncalled", 0, ini));
bodypartHit.Head = static_cast<long>(GetConfigInt("Misc", "BodyHit_Head", -40));
bodypartHit.Left_Arm = static_cast<long>(GetConfigInt("Misc", "BodyHit_Left_Arm", -30));
bodypartHit.Right_Arm = static_cast<long>(GetConfigInt("Misc", "BodyHit_Right_Arm", -30));
bodypartHit.Torso = static_cast<long>(GetConfigInt("Misc", "BodyHit_Torso", 0));
bodypartHit.Right_Leg = static_cast<long>(GetConfigInt("Misc", "BodyHit_Right_Leg", -20));
bodypartHit.Left_Leg = static_cast<long>(GetConfigInt("Misc", "BodyHit_Left_Leg", -20));
bodypartHit.Eyes = static_cast<long>(GetConfigInt("Misc", "BodyHit_Eyes", -60));
bodypartHit.Groin = static_cast<long>(GetConfigInt("Misc", "BodyHit_Groin", -30));
bodypartHit.Uncalled = static_cast<long>(GetConfigInt("Misc", "BodyHit_Torso_Uncalled", 0));
}
static void __declspec(naked) apply_damage_hack() {
@@ -497,7 +497,7 @@ void CombatInit() {
// Actually disables all secondary attacks for the critter, regardless of whether the weapon has a burst attack
MakeCall(0x429E44, ai_pick_hit_mode_hack, 1); // NoBurst
if(GetPrivateProfileInt("Misc", "CheckWeaponAmmoCost", 0, ini)) {
if (GetConfigInt("Misc", "CheckWeaponAmmoCost", 0)) {
MakeCall(0x4234B3, compute_spray_hack, 1);
HookCall(0x4266E9, combat_check_bad_shot_hook);
HookCall(0x429A37, ai_search_inven_weap_hook);
+2 -3
View File
@@ -47,9 +47,8 @@ static void __declspec(naked) ConsoleHook() {
}
void ConsoleInit() {
char path[MAX_PATH];
GetPrivateProfileString("Misc", "ConsoleOutputPath", "", path, MAX_PATH, ini);
if (strlen(path) > 0) {
std::string path = GetConfigString("Misc", "ConsoleOutputPath", "", MAX_PATH);
if (!path.empty()) {
consolefile.open(path);
if (consolefile.is_open()) {
MakeJump(0x43186C, ConsoleHook);
+8 -8
View File
@@ -16,9 +16,9 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "main.h"
#include <stdio.h>
#include "main.h"
#include "FalloutEngine.h"
#include "version.h"
@@ -91,15 +91,15 @@ static DWORD __fastcall CreditsNextLine(char* buf, DWORD* font, DWORD* colour) {
if (strlen(line)) {
if (line[0] == '#') {
line++;
*font = *(DWORD*)_name_font;
*font = *ptr_name_font;
*colour = *(BYTE*)0x6A7F01;
} else if (line[0] == '@') {
line++;
*font = *(DWORD*)_title_font;
*colour = *(DWORD*)_title_color;
*font = *ptr_title_font;
*colour = *ptr_title_color;
} else {
*font = *(DWORD*)_name_font;
*colour = *(DWORD*)_name_color;
*font = *ptr_name_font;
*colour = *ptr_name_color;
}
}
strcpy_s(buf, 256, line);
@@ -154,7 +154,7 @@ morelines:
void CreditsInit() {
HookCall(0x480C49, ShowCreditsHook);
HookCall(0x43F881, ShowCreditsHook);
if (GetPrivateProfileIntA("Misc", "CreditsAtBottom", 0, ini)) {
if (GetConfigInt("Misc", "CreditsAtBottom", 0)) {
HookCall(0x42CB49, CreditsNextLineHook_Bottom);
} else {
HookCall(0x42CB49, CreditsNextLineHook_Top);
+7 -8
View File
@@ -16,13 +16,14 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "main.h"
#include <stdio.h>
#include "Criticals.h"
#include "main.h"
#include "FalloutEngine.h"
#include "Logging.h"
#include "Criticals.h"
static std::string critTableFile(".\\");
static const DWORD CritTableCount = 2 * 19 + 1; // Number of species in new critical table
@@ -269,7 +270,7 @@ static void CriticalTableOverride() {
#undef SetEntry
static void RemoveCriticalTimeLimitsPatch() {
if (GetPrivateProfileIntA("Misc", "RemoveCriticalTimelimits", 0, ini)) {
if (GetConfigInt("Misc", "RemoveCriticalTimelimits", 0)) {
dlog("Removing critical time limits.", DL_INIT);
SafeWrite8(0x424118, 0xEB); // jump to 0x424131
SafeWrite16(0x4A3052, 0x9090);
@@ -279,12 +280,10 @@ static void RemoveCriticalTimeLimitsPatch() {
}
void CriticalsInit() {
mode = GetPrivateProfileIntA("Misc", "OverrideCriticalTable", 2, ini);
mode = GetConfigInt("Misc", "OverrideCriticalTable", 2);
if (mode < 0 || mode > 3) mode = 0;
if (mode) {
char critFile[MAX_PATH];
GetPrivateProfileStringA("Misc", "OverrideCriticalFile", "CriticalOverrides.ini", critFile, MAX_PATH, ini);
critTableFile += critFile;
critTableFile += GetConfigString("Misc", "OverrideCriticalFile", "CriticalOverrides.ini", MAX_PATH);
CriticalTableOverride();
}
+3 -3
View File
@@ -435,7 +435,7 @@ static void __declspec(naked) DisplayBonusHtHDmg2_hack() {
}
void DamageModInit() {
if (formula = GetPrivateProfileIntA("Misc", "DamageFormula", 0, ini)) {
if (formula = GetConfigInt("Misc", "DamageFormula", 0)) {
switch (formula) {
case 1:
case 2:
@@ -447,8 +447,8 @@ void DamageModInit() {
}
}
int BonusHtHDmgFix = GetPrivateProfileIntA("Misc", "BonusHtHDamageFix", 1, ini);
int DisplayBonusDmg = GetPrivateProfileIntA("Misc", "DisplayBonusDamage", 0, ini);
int BonusHtHDmgFix = GetConfigInt("Misc", "BonusHtHDamageFix", 1);
int DisplayBonusDmg = GetConfigInt("Misc", "DisplayBonusDamage", 0);
if (BonusHtHDmgFix) {
dlog("Applying Bonus HtH Damage Perk fix.", DL_INIT);
if (!DisplayBonusDmg) { // Subtract damage from perk bonus (vanilla displaying)
+1 -1
View File
@@ -227,7 +227,7 @@ void ResetExplosionRadius() {
void ExplosionInit() {
MakeJump(0x411AB4, explosion_effect_hook); // required for explosions_metarule
lightingEnabled = GetPrivateProfileIntA("Misc", "ExplosionsEmitLight", 0, ini) != 0;
lightingEnabled = GetConfigInt("Misc", "ExplosionsEmitLight", 0) != 0;
if (lightingEnabled) {
dlog("Applying Explosion changes.", DL_INIT);
MakeJump(0x4118E1, ranged_attack_lighting_fix);
+1 -1
View File
@@ -744,7 +744,7 @@ bool FileSystemIsEmpty() {
}
void FileSystemInit() {
if (GetPrivateProfileIntA("Misc", "UseFileSystemOverride", 0, ini)) {
if (GetConfigInt("Misc", "UseFileSystemOverride", 0)) {
FileSystemOverride();
UsingFileSystem = true;
}
+6 -6
View File
@@ -1041,18 +1041,18 @@ HRESULT _stdcall FakeDirectDrawCreate2(void*, IDirectDraw** b, void*) {
movieDesc.dwHeight = 480;
movieDesc.dwWidth = 640;
gWidth = GetPrivateProfileIntA("Graphics", "GraphicsWidth", 0, ini);
gHeight = GetPrivateProfileIntA("Graphics", "GraphicsHeight", 0, ini);
gWidth = GetConfigInt("Graphics", "GraphicsWidth", 0);
gHeight = GetConfigInt("Graphics", "GraphicsHeight", 0);
if (!gWidth || !gHeight) {
gWidth = ResWidth;
gHeight = ResHeight;
}
GPUBlt = GetPrivateProfileIntA("Graphics", "GPUBlt", 0, ini);
GPUBlt = GetConfigInt("Graphics", "GPUBlt", 0);
if (!GPUBlt || GPUBlt > 2) GPUBlt = 2; // Swap them around to keep compatibility with old ddraw.ini's
else if (GPUBlt == 2) GPUBlt = 0; // Use CPU
if (GraphicsMode == 5) {
ScrollWindowKey = GetPrivateProfileInt("Input", "WindowScrollKey", 0, ini);
ScrollWindowKey = GetConfigInt("Input", "WindowScrollKey", 0);
} else ScrollWindowKey = 0;
*b = (IDirectDraw*)new FakeDirectDraw2();
@@ -1081,7 +1081,7 @@ static __declspec(naked) void palette_fade_to_hook() {
}
void GraphicsInit() {
GraphicsMode = GetPrivateProfileIntA("Graphics", "Mode", 0, ini);
GraphicsMode = GetConfigInt("Graphics", "Mode", 0);
if (GraphicsMode != 4 && GraphicsMode != 5) {
GraphicsMode = 0;
}
@@ -1106,7 +1106,7 @@ void GraphicsInit() {
dlogr(" Done", DL_INIT);
}
fadeMulti = GetPrivateProfileIntA("Graphics", "FadeMultiplier", 100, ini);
fadeMulti = GetConfigInt("Graphics", "FadeMultiplier", 100);
if (fadeMulti != 100) {
dlog("Applying fade patch.", DL_INIT);
HookCall(0x493B16, palette_fade_to_hook);
+6 -6
View File
@@ -1385,16 +1385,16 @@ void _stdcall HeroSelectWindow(int raceStyleFlag) {
char titleText[16];
// Get alternate text from ini if available
if (isStyle) {
GetPrivateProfileString("AppearanceMod", "StyleText", "Style", titleText, 16, translationIni);
Translate("AppearanceMod", "StyleText", "Style", titleText, 16);
} else {
GetPrivateProfileString("AppearanceMod", "RaceText", "Race", titleText, 16, translationIni);
Translate("AppearanceMod", "RaceText", "Race", titleText, 16);
}
BYTE textColour = *(BYTE*)_PeanutButter; // PeanutButter colour - palette offset stored in mem
DWORD titleTextWidth = GetTextWidth(titleText);
PrintText(titleText, textColour, 92 - titleTextWidth / 2, 10, titleTextWidth, 484, mainSurface);
GetPrivateProfileString("AppearanceMod", "DoneBtn", "Done", titleText, 16, translationIni);
Translate("AppearanceMod", "DoneBtn", "Done", titleText, 16);
titleTextWidth = GetTextWidth(titleText);
PrintText(titleText, textColour, 80 - titleTextWidth / 2, 185, titleTextWidth, 484, mainSurface);
@@ -1906,8 +1906,8 @@ static void __declspec(naked) FixCharScrnBack() {
char RaceText[8], StyleText[8];
// Get alternate text from ini if available
GetPrivateProfileString("AppearanceMod", "RaceText", "Race", RaceText, 8, translationIni);
GetPrivateProfileString("AppearanceMod", "StyleText", "Style", StyleText, 8, translationIni);
Translate("AppearanceMod", "RaceText", "Race", RaceText, 8);
Translate("AppearanceMod", "StyleText", "Style", StyleText, 8);
DWORD raceTextWidth = GetTextWidth(RaceText);
DWORD styleTextWidth = GetTextWidth(StyleText);
@@ -2200,7 +2200,7 @@ void HeroAppearanceModExit() {
}
void HeroAppearanceModInit() {
int heroAppearanceMod = GetPrivateProfileIntA("Misc", "EnableHeroAppearanceMod", 0, ini);
int heroAppearanceMod = GetConfigInt("Misc", "EnableHeroAppearanceMod", 0);
if (heroAppearanceMod > 0) {
dlog("Setting up Appearance Char Screen buttons.", DL_INIT);
EnableHeroAppearanceMod();
+13 -12
View File
@@ -38,6 +38,7 @@ struct sMessage {
char* audio;
char* message;
};
static const char* MsgSearch(long msgno, DWORD file) {
if(!file) return 0;
sMessage msg = { msgno, 0, 0, 0 };
@@ -668,7 +669,7 @@ void InventoryReset() {
}
void InventoryInit() {
sizeLimitMode = GetPrivateProfileInt("Misc", "CritterInvSizeLimitMode", 0, ini);
sizeLimitMode = GetConfigInt("Misc", "CritterInvSizeLimitMode", 0);
if (sizeLimitMode > 0 && sizeLimitMode <= 7) {
if (sizeLimitMode >= 4) {
sizeLimitMode -= 4;
@@ -678,7 +679,7 @@ void InventoryInit() {
SafeWrite8(0x477F11, 0);
SafeWrite8(0x477F29, 0);
}
invSizeMaxLimit = GetPrivateProfileInt("Misc", "CritterInvSizeLimit", 100, ini);
invSizeMaxLimit = GetConfigInt("Misc", "CritterInvSizeLimit", 100);
// Check item_add_multi (picking stuff from the floor, etc.)
HookCall(0x4771BD, item_add_mult_hack); // jle addr
@@ -718,26 +719,26 @@ void InventoryInit() {
}
}
if(GetPrivateProfileInt("Misc", "SuperStimExploitFix", 0, ini)) {
GetPrivateProfileString("sfall", "SuperStimExploitMsg", "You cannot use a super stim on someone who is not injured!", SuperStimMsg, 128, translationIni);
if (GetConfigInt("Misc", "SuperStimExploitFix", 0)) {
Translate("sfall", "SuperStimExploitMsg", "You cannot use a super stim on someone who is not injured!", SuperStimMsg);
MakeCall(0x49C3D9, protinst_use_item_on_hack);
}
reloadWeaponKey = GetPrivateProfileInt("Input", "ReloadWeaponKey", 0, ini);
reloadWeaponKey = GetConfigInt("Input", "ReloadWeaponKey", 0);
invenApCost = invenApCostDef = GetPrivateProfileInt("Misc", "InventoryApCost", 4, ini);
invenApQPReduction = GetPrivateProfileInt("Misc", "QuickPocketsApCostReduction", 2, ini);
invenApCost = invenApCostDef = GetConfigInt("Misc", "InventoryApCost", 4);
invenApQPReduction = GetConfigInt("Misc", "QuickPocketsApCostReduction", 2);
if (invenApCostDef != 4 || invenApQPReduction != 2) {
ApplyInvenApCostPatch();
}
if (GetPrivateProfileIntA("Misc", "StackEmptyWeapons", 0, ini)) {
if (GetConfigInt("Misc", "StackEmptyWeapons", 0)) {
MakeCall(0x4736C6, inven_action_cursor_hack);
HookCall(0x4772AA, item_add_mult_hook);
}
// Do not call the 'Move Items' window when using drag and drop to reload weapons in the inventory
int ReloadReserve = GetPrivateProfileIntA("Misc", "ReloadReserve", -1, ini);
int ReloadReserve = GetConfigInt("Misc", "ReloadReserve", -1);
if (ReloadReserve >= 0) {
SafeWrite32(0x47655F, ReloadReserve); // mov eax, ReloadReserve
SafeWrite32(0x476563, 0x097EC139); // cmp ecx, eax; jle 0x476570
@@ -745,14 +746,14 @@ void InventoryInit() {
SafeWrite8(0x476569, 0x91); // xchg ecx, eax
};
itemFastMoveKey = GetPrivateProfileIntA("Input", "ItemFastMoveKey", DIK_LCONTROL, ini);
itemFastMoveKey = GetConfigInt("Input", "ItemFastMoveKey", DIK_LCONTROL);
if (itemFastMoveKey > 0) {
HookCall(0x476897, do_move_timer_hook);
// Do not call the 'Move Items' window when taking items from containers or corpses
skipFromContainer = GetPrivateProfileIntA("Input", "FastMoveFromContainer", 0, ini);
skipFromContainer = GetConfigInt("Input", "FastMoveFromContainer", 0);
}
if (GetPrivateProfileIntA("Misc", "ItemCounterDefaultMax", 0, ini)) {
if (GetConfigInt("Misc", "ItemCounterDefaultMax", 0)) {
MakeCall(0x4768A3, do_move_timer_hack);
}
+9 -9
View File
@@ -142,7 +142,7 @@ static void _stdcall SaveGame2() {
}
return;
//////////////////////////////////////////////////
/////////////////////////////////////////////////
errorSave:
dlog_f("ERROR creating: %s\n", DL_MAIN, buf);
DisplayConsoleMessage(SaveSfallDataFailMsg);
@@ -159,7 +159,7 @@ static DWORD _stdcall CombatSaveTest() {
}
int ap = StatLevel(*ptr_obj_dude, STAT_max_move_points);
int bonusmove = PerkLevel(*ptr_obj_dude, PERK_bonus_move);
if (*(DWORD*)(*(DWORD*)_obj_dude + 0x40) != ap || bonusmove * 2 != *(DWORD*)_combat_free_move) {
if (*(DWORD*)(*(DWORD*)_obj_dude + 0x40) != ap || bonusmove * 2 != *ptr_combat_free_move) {
DisplayConsoleMessage(SaveFailMsg);
return 0;
}
@@ -174,7 +174,7 @@ static void __declspec(naked) SaveGame() {
push eax; // save Mode parameter
call CombatSaveTest;
test eax, eax;
pop edx; // recall Mode parameter
pop edx; // recall Mode parameter (pop eax)
jz end;
mov eax, edx;
or InLoop, SAVEGAME;
@@ -218,7 +218,7 @@ static bool _stdcall LoadGame2_Before() {
}
return false;
//////////////////////////////////////////////////
/////////////////////////////////////////////////
errorLoad:
CloseHandle(h);
dlog_f("ERROR reading data: %s\n", DL_MAIN, buf);
@@ -566,12 +566,12 @@ static void __declspec(naked) exit_move_timer_win_Hook() {
}
void LoadGameHookInit() {
SaveInCombatFix = GetPrivateProfileInt("Misc", "SaveInCombatFix", 1, ini);
SaveInCombatFix = GetConfigInt("Misc", "SaveInCombatFix", 1);
if (SaveInCombatFix > 2) SaveInCombatFix = 0;
GetPrivateProfileString("sfall", "SaveInCombat", "Cannot save at this time.", SaveFailMsg, 128, translationIni);
GetPrivateProfileString("sfall", "SaveSfallDataFail", "ERROR saving extended savegame information! Check if other programs interfere with savegame files/folders and try again!", SaveSfallDataFailMsg, 128, translationIni);
Translate("sfall", "SaveInCombat", "Cannot save at this time.", SaveFailMsg);
Translate("sfall", "SaveSfallDataFail", "ERROR saving extended savegame information! Check if other programs interfere with savegame files/folders and try again!", SaveSfallDataFailMsg);
switch (GetPrivateProfileInt("Misc", "PipBoyAvailableAtGameStart", 0, ini)) {
switch (GetConfigInt("Misc", "PipBoyAvailableAtGameStart", 0)) {
case 1:
PipBoyAvailableAtGameStart = true;
break;
@@ -580,7 +580,7 @@ void LoadGameHookInit() {
break;
}
if (GetPrivateProfileInt("Misc", "DisableHorrigan", 0, ini)) {
if (GetConfigInt("Misc", "DisableHorrigan", 0)) {
DisableHorrigan = true;
SafeWrite8(0x4C06D8, 0xEB); // skip the Horrigan encounter check
}
+6 -6
View File
@@ -97,17 +97,17 @@ static void __declspec(naked) MainMenuTextHook() {
void MainMenuInit() {
int offset;
if (offset = GetPrivateProfileIntA("Misc", "MainMenuCreditsOffsetX", 0, ini)) {
if (offset = GetConfigInt("Misc", "MainMenuCreditsOffsetX", 0)) {
SafeWrite32(0x481753, 15 + offset);
}
if (offset = GetPrivateProfileIntA("Misc", "MainMenuCreditsOffsetY", 0, ini)) {
if (offset = GetConfigInt("Misc", "MainMenuCreditsOffsetY", 0)) {
SafeWrite32(0x48175C, 460 + offset);
}
if (offset = GetPrivateProfileIntA("Misc", "MainMenuOffsetX", 0, ini)) {
if (offset = GetConfigInt("Misc", "MainMenuOffsetX", 0)) {
SafeWrite32(0x48187C, 30 + offset);
MainMenuTextOffset = offset;
}
if (offset = GetPrivateProfileIntA("Misc", "MainMenuOffsetY", 0, ini)) {
if (offset = GetConfigInt("Misc", "MainMenuOffsetY", 0)) {
MainMenuYOffset = offset;
MainMenuTextOffset += offset * 640;
MakeJump(0x481844, MainMenuButtonYHook);
@@ -118,12 +118,12 @@ void MainMenuInit() {
MakeJump(0x4817AB, MainMenuTextHook);
OverrideColour = GetPrivateProfileInt("Misc", "MainMenuFontColour", 0, ini);
OverrideColour = GetConfigInt("Misc", "MainMenuFontColour", 0);
if (OverrideColour & 0xFF) {
OverrideColour &= 0x00FF00FF;
OverrideColour |= 0x06000000;
SafeWrite32(0x481748, (DWORD)&OverrideColour);
}
OverrideColour2 = GetPrivateProfileInt("Misc", "MainMenuBigFontColour", 0, ini) & 0xFF;
OverrideColour2 = GetConfigInt("Misc", "MainMenuBigFontColour", 0) & 0xFF;
if (OverrideColour2) SafeWrite32(0x481906, (DWORD)&OverrideColour2);
}
+2 -2
View File
@@ -78,8 +78,8 @@ void ReadExtraGameMsgFiles() {
names.resize(256);
while ((read = GetPrivateProfileStringA("Misc", "ExtraGameMsgFileList", "",
(LPSTR)names.data(), names.size(), ini)) == names.size() - 1)
while ((read = GetConfigString("Misc", "ExtraGameMsgFileList", "",
(LPSTR)names.data(), names.size())) == names.size() - 1)
names.resize(names.size() + 256);
if (names.empty()) return;
+8 -8
View File
@@ -450,7 +450,7 @@ static void __declspec(naked) gdControlUpdateInfo_hook() {
}
static void NpcAutoLevelPatch() {
npcAutoLevelEnabled = GetPrivateProfileIntA("Misc", "NPCAutoLevel", 0, ini) != 0;
npcAutoLevelEnabled = GetConfigInt("Misc", "NPCAutoLevel", 0) != 0;
if (npcAutoLevelEnabled) {
dlog("Applying NPC autolevel patch.", DL_INIT);
SafeWrite8(0x495CFB, 0xEB); // jmps 0x495D28 (skip random check)
@@ -466,13 +466,13 @@ void NpcEngineLevelUpReset() {
}
void PartyControlInit() {
Mode = GetPrivateProfileIntA("Misc", "ControlCombat", 0, ini);
Mode = GetConfigInt("Misc", "ControlCombat", 0);
if (Mode > 2)
Mode = 0;
if (Mode > 0) {
char pidbuf[512];
pidbuf[511] = 0;
if (GetPrivateProfileStringA("Misc", "ControlCombatPIDList", "", pidbuf, 511, ini)) {
if (GetConfigString("Misc", "ControlCombatPIDList", "", pidbuf, 511)) {
char* ptr = pidbuf;
char* comma;
while (true) {
@@ -511,15 +511,15 @@ void PartyControlInit() {
NpcAutoLevelPatch();
skipCounterAnim = (GetPrivateProfileIntA("Misc", "SpeedInterfaceCounterAnims", 0, ini) == 3);
skipCounterAnim = (GetConfigInt("Misc", "SpeedInterfaceCounterAnims", 0) == 3);
// Display party member's current level & AC & addict flag
if (GetPrivateProfileIntA("Misc", "PartyMemberExtraInfo", 0, ini)) {
if (GetConfigInt("Misc", "PartyMemberExtraInfo", 0)) {
dlog("Applying display NPC extra info patch.", DL_INIT);
HookCall(0x44926F, gdControlUpdateInfo_hook);
GetPrivateProfileString("sfall", "PartyLvlMsg", "Lvl:", levelMsg, 12, translationIni);
GetPrivateProfileString("sfall", "PartyACMsg", "AC:", armorClassMsg, 12, translationIni);
GetPrivateProfileString("sfall", "PartyAddictMsg", "Addict", addictMsg, 16, translationIni);
Translate("sfall", "PartyLvlMsg", "Lvl:", levelMsg, 12);
Translate("sfall", "PartyACMsg", "AC:", armorClassMsg, 12);
Translate("sfall", "PartyAddictMsg", "Addict", addictMsg, 16);
dlogr(" Done", DL_INIT);
}
}

Some files were not shown because too many files have changed in this diff Show More