Historical Functions Referenced by sfall

This table was assembled as a quick reference from the sfall source tree several years ago. The exact commit and extraction method were not retained. File paths, code snippets, and function signatures may differ from current sfall.

Use the table to locate historical references and likely areas of interest, then confirm each result against the sfall revision and Fallout 2 executable used by your project.

FunctionCodeFile
void abil_init()if (illegalArg || (checkValidMemAddr && (args[0] < 0x410010 || args[0] > 0x4FCE34))) {Modules\Scripting\Handlers\Memory.cpp
DWORD pick_death(GameObject* attacker, GameObject* target, GameObject* weapon, DWORD amount, DWORD anim, DWORD hitFromBack)DWORD animDeath = fo::func::pick_death(attacker, target, weapon, damage, animation, hitBack); // vanilla pick deathModules\HookScripts\DeathHs.cpp
void check_death()call fo::funcoffs::check_death_; // call original functionModules\HookScripts\DeathHs.cpp
void action_use_skill_on()jmp fo::funcoffs::action_use_skill_on_;Modules\HookScripts\MiscHs.cpp
void action_talk_to()jmp fo::funcoffs::action_talk_to_;Modules\PartyControl.cpp
DWORD register_begin(DWORD regType)jmp fo::funcoffs::register_begin_;Modules\Animations.cpp
jmp fo::funcoffs::register_begin_; // vanilla behaviorModules\Animations.cpp
jmp fo::funcoffs::register_begin_;Modules\BugFixes.cpp
call fo::funcoffs::register_begin_;Modules\MiscPatches.cpp
void register_clear()call fo::funcoffs::register_clear_;Modules\MiscPatches.cpp
DWORD register_end()call fo::funcoffs::register_end_;Modules\MiscPatches.cpp
DWORD register_object_animate(GameObject* object, DWORD anim, DWORD delay)call fo::funcoffs::register_object_animate_;Modules\Explosions.cpp
call fo::funcoffs::register_object_animate_;Modules\Explosions.cpp
call fo::funcoffs::register_object_animate_; // overwritten callModules\Explosions.cpp
call fo::funcoffs::register_object_animate_;Modules\MiscPatches.cpp
jmp fo::funcoffs::register_object_animate_;Modules\HookScripts\ObjectHs.cpp
fo::func::register_object_animate_and_hide(obj, animId, delay);Modules\Scripting\Handlers\Anims.cpp
DWORD register_object_animate_and_hide(GameObject* object, DWORD anim, DWORD delay)call fo::funcoffs::register_object_animate_and_hide_;Modules\Explosions.cpp
fo::func::register_object_animate_and_hide(obj, animId, delay);Modules\Scripting\Handlers\Anims.cpp
DWORD register_object_turn_towards(GameObject* object, DWORD tileNum, DWORD nothing)fo::func::register_object_turn_towards(obj, tile, nothing);Modules\Scripting\Handlers\Anims.cpp
DWORD register_object_must_erase(GameObject* object)fo::func::register_object_must_erase(obj);Modules\Scripting\Handlers\Anims.cpp
void register_object_call(DWORD* target, DWORD* source, void* func, DWORD delay)fo::func::register_object_call(Modules\Scripting\Handlers\Anims.cpp
DWORD register_object_funset(GameObject* object, DWORD action, DWORD delay)call fo::funcoffs::register_object_funset_;Modules\Explosions.cpp
DWORD register_object_change_fid(GameObject* object, DWORD artFid, DWORD delay)call fo::funcoffs::register_object_change_fid_;Modules\MiscPatches.cpp
fo::func::register_object_change_fid(obj, fid, delay);Modules\Scripting\Handlers\Anims.cpp
DWORD register_object_take_out(GameObject* object, DWORD holdFrameId, DWORD nothing)MakeJump(0x415238, register_object_take_out_hack);Modules\MiscPatches.cpp
fo::func::register_object_take_out(obj, holdFrame, nothing);Modules\Scripting\Handlers\Anims.cpp
DWORD register_object_light(GameObject* object, DWORD lightRadius, DWORD delay)call fo::funcoffs::register_object_light_;Modules\Explosions.cpp
call fo::funcoffs::register_object_light_;Modules\Explosions.cpp
call fo::funcoffs::register_object_light_;Modules\Explosions.cpp
call fo::funcoffs::register_object_light_;Modules\Explosions.cpp
fo::func::register_object_light(obj, radius, delay);Modules\Scripting\Handlers\Anims.cpp
void anim_set_end()jmp fo::funcoffs::anim_set_end_;Modules\Animations.cpp
DWORD anim_can_use_door(GameObject* source, GameObject* object)if (!fo::func::anim_can_use_door(srcObject, objBlock)) continue; // block - next rotationGame\tilemap.cpp
jmp fo::funcoffs::anim_can_use_door_;Modules\BugFixes.cpp
void make_path()fo::func::make_path_func(partyMember, partyMember->tile, underObject->tile, 0, 0, game::Tilemap::obj_path_blocking_at_) > 0)Modules\PartyControl.cpp
long pathLength = fo::func::make_path_func(objFrom, objFrom->tile, tileTo, pathData, checkFlag, (void*)func);Modules\Scripting\Handlers\Objects.cpp
DWORD make_path_func(GameObject* objectFrom, DWORD tileFrom, DWORD tileTo, char* pathDataBuffer, DWORD checkTileTo, void* blockingFunc)sf::MakeJump(fo::funcoffs::make_path_func_, make_path_func_hack_replacement); // 0x415EFCGame\tilemap.cpp
fo::func::make_path_func(partyMember, partyMember->tile, underObject->tile, 0, 0, game::Tilemap::obj_path_blocking_at_) > 0)Modules\PartyControl.cpp
long pathLength = fo::func::make_path_func(objFrom, objFrom->tile, tileTo, pathData, checkFlag, (void*)func);Modules\Scripting\Handlers\Objects.cpp
DWORD tile_idistance(DWORD sourceTile, DWORD targetTile)it->distance = fo::func::tile_idistance(sourceTile, targetTile); // maximum distanceGame\tilemap.cpp
void make_straight_path()fo::func::make_straight_path_func(object, objTile, targetTile, 0, (DWORD*)&obj, 0x20, (void*)fo::funcoffs::obj_shoot_blocking_at_);Game\AI\AIHelpers.cpp
fo::func::make_straight_path_func(attacker, attacker->tile, target->tile, 0, (DWORD*)&object, 0x20, (void*)fo::funcoffs::obj_shoot_blocking_at_);Game\AI\AIHelpers.cpp
call fo::funcoffs::make_straight_path_;Modules\MiscPatches.cpp
fo::func::make_straight_path_func(objFrom, objFrom->tile, tileTo, 0, (DWORD*)&resultObj, flag, (void*)getBlockingFunc(type));Modules\Scripting\Handlers\Objects.cpp
DWORD make_straight_path_func(GameObject* objFrom, DWORD tileFrom, DWORD tileTo, void* arrayPtr, DWORD* outObject, DWORD flags, void* blockingFunc)fo::func::make_straight_path_func(object, objTile, targetTile, 0, (DWORD*)&obj, 0x20, (void*)fo::funcoffs::obj_shoot_blocking_at_);Game\AI\AIHelpers.cpp
fo::func::make_straight_path_func(attacker, attacker->tile, target->tile, 0, (DWORD*)&object, 0x20, (void*)fo::funcoffs::obj_shoot_blocking_at_);Game\AI\AIHelpers.cpp
call fo::funcoffs::make_straight_path_func_; // overlapping if len(eax) == 0Modules\MiscPatches.cpp
fo::func::make_straight_path_func(objFrom, objFrom->tile, tileTo, 0, (DWORD*)&resultObj, flag, (void*)getBlockingFunc(type));Modules\Scripting\Handlers\Objects.cpp
void dude_stand()jmp fo::funcoffs::dude_stand_;Modules\BugFixes.cpp
void dude_standup()jmp fo::funcoffs::dude_standup_;Modules\BugFixes.cpp
jmp fo::funcoffs::dude_standup_;Modules\BugFixes.cpp
void art_init()static const functype art_init = (functype)fo::funcoffs::art_init_;Modules\Tiles.cpp
FrmHeaderData* art_ptr_lock(DWORD frmId, DWORD* lockPtr)fo::FrmHeaderData* frm = fo::func::art_ptr_lock(object->artFid, &lock);FalloutEngine\EngineUtils.cpp
auto frm = fo::func::art_ptr_lock(dialog_target->artFid, &lockPtr);HRP\Dialog.cpp
*(BYTE**)FO_VAR_dialog_red_button_up_buf = fo::func::art_ptr_lock_data(artID | 96, 0 ,0, (DWORD*)FO_VAR_dialog_red_button_up_key);Modules\BugFixes.cpp
*(BYTE**)FO_VAR_dialog_red_button_down_buf = fo::func::art_ptr_lock_data(artID | 95, 0 ,0, (DWORD*)FO_VAR_dialog_red_button_down_key);Modules\BugFixes.cpp
fo::FrmHeaderData *critFrm = fo::func::art_ptr_lock(BuildFrmId(1, critNum), &critFrmLock);Modules\HeroAppearance.cpp
BYTE *MenuUSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 299), 0, 0, &MenuUObj); // MENUUP FrmModules\HeroAppearance.cpp
BYTE *MenuDSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 300), 0, 0, &MenuDObj); // MENUDOWN FrmModules\HeroAppearance.cpp
BYTE *DidownUSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 93), 0, 0, &DidownUObj); // MENUUP FrmModules\HeroAppearance.cpp
BYTE *DidownDSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 94), 0, 0, &DidownDObj); // MENUDOWN FrmModules\HeroAppearance.cpp
BYTE *DiupUSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 100), 0, 0, &DiupUObj); // MENUUP FrmModules\HeroAppearance.cpp
BYTE *DiupDSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 101), 0, 0, &DiupDObj); // MENUDOWN FrmModules\HeroAppearance.cpp
frmSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 122), 0, 0, &frmLock); // SLUFrmModules\HeroAppearance.cpp
frmSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 123), 0, 0, &frmLock); // SLDFrmModules\HeroAppearance.cpp
frmSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 124), 0, 0, &frmLock); // SRUFrmModules\HeroAppearance.cpp
frmSurface = fo::func::art_ptr_lock_data(BuildFrmId(6, 125), 0, 0, &frmLock); // SRDFrmModules\HeroAppearance.cpp
FrmSurface = fo::func::art_ptr_lock_data(BuildFrmId(fo::OBJ_TYPE_INTRFACE, 113), 0, 0, &FrmObj); // "Use Item On" windowModules\HeroAppearance.cpp
FrmSurface = fo::func::art_ptr_lock_data(BuildFrmId(fo::OBJ_TYPE_INTRFACE, 188), 0, 0, &FrmObj);Modules\HeroAppearance.cpp
FrmMaskSurface = fo::func::art_ptr_lock_data(BuildFrmId(fo::OBJ_TYPE_INTRFACE, 187), 0, 0, &FrmMaskObj);Modules\HeroAppearance.cpp
FrmSurface = fo::func::art_ptr_lock_data(BuildFrmId(fo::OBJ_TYPE_INTRFACE, 174), 0, 0, &FrmObj); // Pickchar frmModules\HeroAppearance.cpp
*(BYTE**)buttonMem = fo::func::art_ptr_lock_data(artId, 0, 0, (DWORD*)buttonKey); // first texture memory addressModules\QuestList.cpp
DWORD art_ptr_unlock(DWORD lockId)fo::func::art_ptr_unlock(lock);FalloutEngine\EngineUtils.cpp
fo::func::art_ptr_unlock(lockPtr);HRP\Dialog.cpp
if (frm) fo::func::art_ptr_unlock(frm);Modules\Animations.cpp
call fo::funcoffs::art_ptr_unlock_;Modules\BugFixes.cpp
fo::func::art_ptr_unlock(critFrmLock);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(MenuUObj);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(MenuDObj);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(DidownUObj);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(DidownDObj);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(DiupUObj);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(DiupDObj);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(frmLock);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(frmLock);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(frmLock);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(frmLock);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(FrmObj);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(FrmObj);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(FrmMaskObj);Modules\HeroAppearance.cpp
fo::func::art_ptr_unlock(FrmObj);Modules\HeroAppearance.cpp
void art_flush()if (flush) fo::func::art_flush();Modules\HeroAppearance.cpp
__asm call fo::funcoffs::art_flush_;Modules\Scripting\Handlers\Anims.cpp
void art_get_code()jmp fo::funcoffs::art_get_code_;Modules\MiscPatches.cpp
jmp fo::funcoffs::art_get_code_;Modules\MiscPatches.cpp
jmp fo::funcoffs::art_get_code_;Modules\MiscPatches.cpp
char* art_get_name(DWORD artFID)const char* artPathName = fo::func::art_get_name(_fid); // <cd>\art\type\file.frmModules\Scripting\Handlers\Interface.cpp
artPathName = fo::func::art_get_name(fid); // .fr#Modules\Scripting\Handlers\Interface.cpp
DWORD art_frame_width(FrmHeaderData* frm, DWORD frameNum, DWORD rotation)DWORD critWidth = fo::func::art_frame_width(critFrm, 0, charRotOri);Modules\HeroAppearance.cpp
DWORD art_frame_length(FrmHeaderData* frm, DWORD frameNum, DWORD rotation)long yOffset = fo::func::art_frame_length(frm, dialog_target->frm, dialog_target->rotation) / 2;HRP\Dialog.cpp
DWORD critHeight = fo::func::art_frame_length(critFrm, 0, charRotOri);Modules\HeroAppearance.cpp
FrmFrameData* frame_ptr(FrmHeaderData* frm, DWORD frame, DWORD direction)fo::FrmFrameData* frame = fo::func::frame_ptr((fo::FrmHeaderData*)frm, i, 0);Modules\TalkingHeads.cpp
fo::FrmFrameData* frame = fo::func::frame_ptr((fo::FrmHeaderData*)frm, frameno, 0);Modules\TalkingHeads.cpp
bool art_exists(DWORD artFid)if (!fo::func::art_exists(fId)) {Modules\PartyControl.cpp
call fo::funcoffs::art_exists_;Modules\PartyControl.cpp
ctx.setReturn(fo::func::art_exists(ctx.arg(0).rawValue()));Modules\Scripting\Handlers\Anims.cpp
void art_alias_num()jmp fo::funcoffs::art_alias_num_;Modules\HeroAppearance.cpp
void art_alias_fid()call fo::funcoffs::art_alias_fid_;Modules\LoadOrder.cpp
DWORD art_id(DWORD artType, DWORD lstIndex, DWORD animCode, DWORD weaponCode, DWORD directionCode)fid = fo::func::art_id(fo::OBJ_TYPE_CRITTER, indexNum, 0, weaponAnimCode, 0);Game\inventory.cpp
jmp fo::funcoffs::art_id_;HRP\ViewMap\ViewMap.cpp
jmp fo::funcoffs::art_id_;HRP\ViewMap\ViewMap.cpp
jmp fo::funcoffs::art_id_;HRP\ViewMap\ViewMap.cpp
critter->artFid = fo::func::art_id(fo::ObjType::OBJ_TYPE_CRITTER, critter->artFid & 0xFFF, 0, (critter->artFid & 0xF000) >> 12, critter->rotation + 1);Modules\BugFixes.cpp
jmp fo::funcoffs::art_id_;Modules\HeroAppearance.cpp
jmp fo::funcoffs::art_id_;Modules\Interface.cpp
jmp fo::funcoffs::art_id_;Modules\Interface.cpp
call fo::funcoffs::art_id_;Modules\MiscPatches.cpp
long artId = fo::func::art_id(fo::ArtType::OBJ_TYPE_INTRFACE, indexArt, 0, 0, 0);Modules\QuestList.cpp
jmp fo::funcoffs::art_id_;Modules\TalkingHeads.cpp
DWORD load_frame(char* filename, FrmFile** frmPtr)if (fo::func::load_frame(file, &frmPtr)) {Modules\Scripting\Handlers\Interface.cpp
void audioOpen()mov edx, fo::funcoffs::audioOpen_;Modules\Sound.cpp
void audioCloseFile()mov ebx, fo::funcoffs::audioCloseFile_;Modules\Sound.cpp
void audioRead()mov ecx, fo::funcoffs::audioRead_;Modules\Sound.cpp
void audioSeek()push fo::funcoffs::audioSeek_;Modules\Sound.cpp
void audioFileSize()push fo::funcoffs::audioFileSize_;Modules\Sound.cpp
void dialog_out()call fo::funcoffs::dialog_out_;FalloutEngine\Functions.cpp
call fo::funcoffs::dialog_out_; // edx - DisplayText (seconds lines)FalloutEngine\Functions.cpp
void combat_safety_invalidate_weapon()return !fo::func::combat_safety_invalidate_weapon_func(attacker, weapon, fo::AttackType::ATKTYPE_RWEAPON_SECONDARY, target, 0, 0);Modules\AI.cpp
DWORD combat_safety_invalidate_weapon_func(GameObject* source, GameObject* weapon, DWORD hitMode, GameObject* targetA, DWORD* outSafeRange, GameObject* targetB)return !fo::func::combat_safety_invalidate_weapon_func(attacker, weapon, fo::AttackType::ATKTYPE_RWEAPON_SECONDARY, target, 0, 0);Modules\AI.cpp
void combat_over()__asm jmp fo::funcoffs::combat_over_;Modules\HookScripts\CombatHs.cpp
void combat_sequence()call fo::funcoffs::combat_sequence_;Modules\HookScripts\CombatHs.cpp
void combat_turn_run()call fo::funcoffs::combat_turn_run_;Modules\BugFixes.cpp
call fo::funcoffs::combat_turn_run_;Modules\BugFixes.cpp
void combat_input()call fo::funcoffs::combat_input_;Modules\LoadGameHook.cpp
DWORD combat_turn(GameObject* critter, DWORD isDudeTurn)combatTurnResult = fo::func::combat_turn(critter, dudeBegin);Modules\HookScripts\CombatHs.cpp
void combat_should_end()call fo::funcoffs::combat_should_end_;Modules\BugFixes.cpp
void combat()return !fo::func::combat_safety_invalidate_weapon_func(attacker, weapon, fo::AttackType::ATKTYPE_RWEAPON_SECONDARY, target, 0, 0);Modules\AI.cpp
__asm call fo::funcoffs::combat_;Modules\LoadGameHook.cpp
combatTurnResult = fo::func::combat_turn(critter, dudeBegin);Modules\HookScripts\CombatHs.cpp
void combat_ctd_init()jmp fo::funcoffs::combat_ctd_init_;Modules\AI.cpp
void combat_attack()jmp fo::funcoffs::combat_attack_;Modules\AI.cpp
void attack_crit_success()call fo::funcoffs::attack_crit_success_;Modules\BugFixes.cpp
DWORD determine_to_hit(GameObject* source, GameObject* target, DWORD bodyPart, DWORD hitMode)jmp fo::funcoffs::determine_to_hit_;Modules\Combat.cpp
void determine_to_hit_func()call fo::funcoffs::determine_to_hit_func_;Modules\HookScripts\CombatHs.cpp
void compute_damage()call fo::funcoffs::compute_damage_;Modules\HookScripts\CombatHs.cpp
void check_for_death(GameObject* critter, DWORD amountDamage, DWORD* flags)fo::func::check_for_death(fo::var::main_ctd.target, fo::var::main_ctd.targetDamage, &fo::var::main_ctd.targetFlags);Modules\BugFixes.cpp
void combat_anim_finished()call fo::funcoffs::combat_anim_finished_;Modules\Animations.cpp
void combat_check_bad_shot()call fo::funcoffs::combat_check_bad_shot_;Modules\AI.cpp
AIcap* ai_cap(GameObject* critter)fo::AIcap* cap = fo::func::ai_cap(source);Game\combatAI.cpp
jmp fo::funcoffs::ai_cap_;Modules\AI.cpp
fo::AIcap* cap = fo::func::ai_cap(partyMember);Modules\PartyControl.cpp
fo::AIcap* cap = fo::func::ai_cap(ctx.arg(0).object());Modules\Scripting\Handlers\Objects.cpp
DWORD ai_magic_hands(GameObject* source, GameObject* object, DWORD msgNumber)fo::func::ai_magic_hands(source, item, 5000);Game\items.cpp
void ai_check_drugs()sf::MakeJump(fo::funcoffs::ai_check_drugs_, ai_check_drugs_replacement); // 0x428480Game\combatAI.cpp
call game::CombatAI::ai_check_drugs; // call fo::funcoffs::ai_check_drugs_;Modules\AI.cpp
void ai_run_away()jmp fo::funcoffs::ai_run_away_;Modules\AI.cpp
call fo::funcoffs::ai_run_away_;Modules\AI.cpp
void ai_danger_source()jmp fo::funcoffs::ai_danger_source_;Modules\PartyControl.cpp
DWORD ai_have_ammo(GameObject* critter, GameObject* item, GameObject** outAmmo)return fo::func::ai_have_ammo(source, weapon, outAmmo); // 0 - no ammoModules\AI.cpp
void caiHasWeapPrefType()call fo::funcoffs::caiHasWeapPrefType_;Modules\AI.cpp
GameObject* ai_best_weapon(GameObject* source, GameObject* prevItem, GameObject* checkItem, GameObject* target)call fo::funcoffs::ai_best_weapon_;Modules\HookScripts\CombatHs.cpp
bool ai_can_use_weapon(GameObject* critter, GameObject* item, DWORD hitMode)bool result = fo::func::ai_can_use_weapon(source, weapon, hitMode);Game\combatAI.cpp
call fo::funcoffs::ai_can_use_weapon_;Modules\HookScripts\CombatHs.cpp
GameObject* ai_search_inven_weap(GameObject* source, DWORD apCheck, GameObject* target)fo::GameObject* item = fo::func::ai_search_inven_weap(source, 1, target); // search based on APModules\AI.cpp
GameObject* ai_search_environ(GameObject* critter, DWORD itemType)if (!lastItem) lastItem = fo::func::ai_search_environ(source, fo::ItemType::item_type_drug);Game\combatAI.cpp
if (!lastItem) lastItem = fo::func::ai_search_environ(source, fo::ItemType::item_type_misc_item);Game\combatAI.cpp
GameObject* ai_retrieve_object(GameObject* critter, GameObject* item)if (lastItem) lastItem = fo::func::ai_retrieve_object(source, lastItem);Game\combatAI.cpp
call fo::funcoffs::ai_retrieve_object_;Modules\AI.cpp
DWORD ai_pick_hit_mode(GameObject* source, GameObject* item, GameObject* target)long _hitMode = fo::func::ai_pick_hit_mode(source, weapon, target);Modules\AI.cpp
void ai_switch_weapons()jmp fo::funcoffs::ai_switch_weapons_;Modules\AI.cpp
void cai_attempt_w_reload()jmp fo::funcoffs::cai_attempt_w_reload_;Modules\BugFixes.cpp
void combat_ai()call fo::funcoffs::combat_ai_;Modules\AI.cpp
void combatai_rating()call fo::funcoffs::combatai_rating_;Modules\AI.cpp
call fo::funcoffs::combatai_rating_;Modules\AI.cpp
void combatai_check_retaliation()jmp fo::funcoffs::combatai_check_retaliation_;Modules\Combat.cpp
DWORD is_within_perception(GameObject* source, GameObject* target)return sf::PerceptionRangeHook_Invoke(watcher, target, hookType, fo::func::is_within_perception(watcher, target));Game\objects.cpp
return PerceptionRangeHook_Script(watcher, target, type, fo::func::is_within_perception(watcher, target));Modules\HookScripts\MiscHs.cpp
void config_get_string()call fo::funcoffs::config_get_string_; // section<edx>, outValue<ecx>FalloutEngine\Functions.cpp
call fo::funcoffs::config_get_string_;Modules\Worldmap.cpp
void config_get_value()jmp fo::funcoffs::config_get_value_;Modules\MiscPatches.cpp
void credits()__asm call fo::funcoffs::credits_;Modules\Credits.cpp
void credits_get_next_line()jmp fo::funcoffs::credits_get_next_line_;Modules\Credits.cpp
call fo::funcoffs::credits_get_next_line_; // call default functionModules\Credits.cpp
char* critter_name(GameObject* critter)jmp fo::funcoffs::critter_name_;Modules\AI.cpp
set->animations[i].source, fo::func::critter_name(set->animations[i].source),Modules\Animations.cpp
call fo::funcoffs::critter_name_;Modules\BugFixes.cpp
fo::func::critter_pc_set_name(fo::func::critter_name(npc));Modules\PartyControl.cpp
devlog_f("%s restore sneak: time %d[%d], state %d\n", DL_MAIN, fo::func::critter_name(npc), member.sneak_queue_time, fo::var::fallout_game_time, member.sneak_working);Modules\PartyControl.cpp
devlog_f("%s recheck sneak: time %d<=[%d], state %d\n", DL_MAIN, fo::func::critter_name(npc), member.sneak_queue_time, fo::var::fallout_game_time, member.sneak_working);Modules\PartyControl.cpp
jmp fo::funcoffs::critter_name_;Modules\PartyControl.cpp
devlog_f("[Switch] %s update sneak: time %d, state %d\n", DL_MAIN, fo::func::critter_name(fo::var::obj_dude), member.sneak_queue_time, member.sneak_working);Modules\PartyControl.cpp
devlog_f("[Switch] %s save sneak: time %d, state %d\n", DL_MAIN, fo::func::critter_name(fo::var::obj_dude), member.sneak_queue_time, member.sneak_working);Modules\PartyControl.cpp
call fo::funcoffs::critter_name_;Modules\Scripting\Handlers\Objects.cpp
void critter_pc_set_name(char* newName)fo::func::critter_pc_set_name(fo::func::critter_name(npc));Modules\PartyControl.cpp
void critter_adjust_hits()call fo::funcoffs::critter_adjust_hits_;Modules\Scripting\Handlers\Interface.cpp
void critter_get_rads()jmp fo::funcoffs::critter_get_rads_;Modules\MiscPatches.cpp
void critter_kill_count()critterType = static_cast<int8_t>(fo::func::critter_kill_count_type(srcObject));Game\tilemap.cpp
DWORD critter_kill_count_type(GameObject* critter)critterType = static_cast<int8_t>(fo::func::critter_kill_count_type(srcObject));Game\tilemap.cpp
jmp fo::funcoffs::critter_kill_count_type_;Modules\MiscPatches.cpp
void critter_kill()critterType = static_cast<int8_t>(fo::func::critter_kill_count_type(srcObject));Game\tilemap.cpp
DWORD critter_is_dead(GameObject* critter)call fo::funcoffs::critter_is_dead_; // found some object, check if it's a dead critterModules\BugFixes.cpp
call fo::funcoffs::critter_is_dead_;Modules\BugFixes.cpp
if (includeHidden || (obj->IsCritter() && !fo::func::critter_is_dead(obj) && !(obj->flags & fo::ObjectFlag::Mouse_3d))) {Modules\Scripting\Handlers\Objects.cpp
DWORD critter_body_type(GameObject* critter)if (fo::func::critter_body_type(source)) return; // Robotic/Quadruped cannot use drugsGame\combatAI.cpp
call fo::funcoffs::critter_body_type_;Modules\BugFixes.cpp
switch (fo::func::critter_body_type(partyMember)) {Modules\PartyControl.cpp
void pc_flag_off()__asm call fo::funcoffs::pc_flag_off_;Modules\Scripting\Handlers\Interface.cpp
void pc_flag_on(DWORD flag)__asm call fo::funcoffs::pc_flag_on_;Modules\Scripting\Handlers\Interface.cpp
void pc_flag_toggle()// jmp fo::funcoffs::pc_flag_toggle_;Modules\PartyControl.cpp
DWORD is_pc_flag(DWORD flag)if (fo::func::is_pc_flag(0)) { // sneak flagModules\PartyControl.cpp
if (realDude.sneak_queue_time && fo::func::is_pc_flag(0)) {Modules\PartyControl.cpp
void critter_sneak_check()if (!exist) __asm call fo::funcoffs::critter_sneak_check_;Modules\PartyControl.cpp
DWORD is_pc_sneak_working()ctx.setReturn(fo::func::is_pc_sneak_working());Modules\Scripting\Handlers\Misc.cpp
void critter_wake_up()call fo::funcoffs::critter_wake_up_; // (stand up anim)Modules\BugFixes.cpp
void critter_compute_ap_from_distance()call fo::funcoffs::critter_compute_ap_from_distance_;Modules\HookScripts\InventoryHs.cpp
void datafileConvertData()call fo::funcoffs::datafileConvertData_;FalloutEngine\Functions.cpp
void display_print(char* msg)push fo::funcoffs::display_print_; // func replaced by Mash's HRPGame\GUI\Text.cpp
sf::MakeJump(fo::funcoffs::display_print_, display_print_hack_replacemet); // 0x43186CGame\GUI\Text.cpp
jmp fo::funcoffs::display_print_;Modules\BugFixes.cpp
call fo::funcoffs::display_print_;Modules\BugFixes.cpp
call fo::funcoffs::display_print_;Modules\BugFixes.cpp
jmp fo::funcoffs::display_print_;Modules\BugFixes.cpp
call fo::funcoffs::display_print_;Modules\BugFixes.cpp
if (!HRP::Setting::IsEnabled()) MakeJump(0x43186C, display_print_hack);Modules\Console.cpp
jmp fo::funcoffs::display_print_;Modules\DebugEditor.cpp
fo::func::display_print(superStimMsg.c_str());Modules\Inventory.cpp
fo::func::display_print(buf);Modules\Karma.cpp
fo::func::display_print(fo::util::GetMessageStr(&fo::var::proto_main_msg_file, 675)); // I Can't do thatModules\PartyControl.cpp
fo::func::display_print(Translate::CombatBlockMessage().c_str());Modules\SubModules\CombatBlock.cpp
void display_redraw()__asm call fo::funcoffs::display_redraw_;Game\GUI\Text.cpp
jmp fo::funcoffs::display_redraw_;HRP\InterfaceBar.cpp
void display_scroll_up()call fo::funcoffs::display_scroll_up_;InputFuncs.cpp
void display_scroll_down()call fo::funcoffs::display_scroll_down_;InputFuncs.cpp
void editor_design()call fo::funcoffs::editor_design_;Modules\LoadGameHook.cpp
void DrawFolder()call fo::funcoffs::DrawFolder_;Modules\HeroAppearance.cpp
void PrintLevelWin()call fo::funcoffs::PrintLevelWin_;Modules\HeroAppearance.cpp
call fo::funcoffs::PrintLevelWin_;Modules\Scripting\Handlers\Interface.cpp
void PrintBasicStat()call fo::funcoffs::PrintBasicStat_;Modules\HeroAppearance.cpp
call fo::funcoffs::PrintBasicStat_;Modules\Scripting\Handlers\Interface.cpp
void ListDrvdStats()call fo::funcoffs::ListDrvdStats_;Modules\HeroAppearance.cpp
call fo::funcoffs::ListDrvdStats_;Modules\Scripting\Handlers\Interface.cpp
void ListSkills()call fo::funcoffs::ListSkills_;Modules\HeroAppearance.cpp
call fo::funcoffs::ListSkills_;Modules\Scripting\Handlers\Interface.cpp
void DrawInfoWin()//call fo::funcoffs::DrawInfoWin_;Modules\HeroAppearance.cpp
void SexWindow()call fo::funcoffs::SexWindow_; // call gender selection windowModules\HeroAppearance.cpp
bool db_access(char* fileName)call fo::funcoffs::db_access_; // check art file existsModules\HeroAppearance.cpp
bool hookHasScript = fo::func::db_access(filePath);Modules\HookScripts.cpp
if (!fo::func::db_access("art\\intrface\\worldmap.frm")) return;Modules\Interface.cpp
call fo::funcoffs::db_access_;Modules\LoadOrder.cpp
return (path && fo::func::db_access(path)) ? path : premadePath;Modules\Premade.cpp
if (direction > 0 && !fo::func::db_access(artPathName)) {Modules\Scripting\Handlers\Interface.cpp
if (fo::func::db_access(outFilePath)) return direction;Modules\Scripting\Handlers\Interface.cpp
void DrawCard()jmp fo::funcoffs::DrawCard_;Modules\Karma.cpp
void ListTraits()call fo::funcoffs::ListTraits_;Modules\HeroAppearance.cpp
void ListDPerks()call fo::funcoffs::ListDPerks_;Modules\Perks.cpp
DWORD folder_print_seperator(char* text)if (fo::func::folder_print_seperator(message)) {Modules\Drugs.cpp
DWORD folder_print_line(char* text)if (fo::func::folder_print_line(message)) {Modules\Drugs.cpp
if (fo::func::folder_print_line(fakeTraits[i].Name) && !isSelect) {Modules\Perks.cpp
void elevator_start()jmp fo::funcoffs::elevator_start_;Modules\Elevators.cpp
void elevator_end()jmp fo::funcoffs::elevator_end_;Modules\Elevators.cpp
void Check4Keys()call fo::funcoffs::Check4Keys_;Modules\Elevators.cpp
void endgame_slideshow()call fo::funcoffs::endgame_slideshow_;Modules\SpeedPatch.cpp
void endgame_load_palette(DWORD artType, DWORD fid)fo::func::endgame_load_palette(fo::ArtType::OBJ_TYPE_INTRFACE, artID & 0xFFF);HRP\SlidesScreen.cpp
fo::func::endgame_load_palette(fo::ArtType::OBJ_TYPE_INTRFACE, 327); // panning desert image (DP.FRM)HRP\SlidesScreen.cpp
void findVar()jmp fo::funcoffs::findVar_;Modules\ScriptExtender.cpp
jmp fo::funcoffs::findVar_; // else - proceed normalModules\ScriptExtender.cpp
DWORD FMtext_width(char* text)return fo::func::FMtext_width(TextMsg); //get text widthFalloutEngine\EngineUtils.cpp
void FMtext_char_width()call fo::funcoffs::FMtext_char_width_;FalloutEngine\EngineUtils.cpp
void FMtext_to_buf()call fo::funcoffs::FMtext_to_buf_;FalloutEngine\EngineUtils.cpp
void game_reset()jmp fo::funcoffs::game_reset_;Modules\LoadGameHook.cpp
jmp fo::funcoffs::game_reset_;Modules\LoadGameHook.cpp
void game_exit()jmp fo::funcoffs::game_exit_;Modules\LoadGameHook.cpp
DWORD game_get_global_var(DWORD globalVar)if (fo::func::game_get_global_var(fo::GVAR_CAR_BLOWER)) {Modules\HookScripts\MiscHs.cpp
if (fo::func::game_get_global_var(fo::GVAR_NEW_RENO_CAR_UPGRADE)) {Modules\HookScripts\MiscHs.cpp
if (fo::func::game_get_global_var(fo::GVAR_NEW_RENO_SUPER_CAR)) {Modules\HookScripts\MiscHs.cpp
void game_set_global_var()jmp fo::funcoffs::game_set_global_var_;Modules\HookScripts\MiscHs.cpp
void game_screendump()call fo::funcoffs::game_screendump_; // call ds:[FO_VAR_screendump_func];Modules\Graphics.cpp
void game_help()call fo::funcoffs::game_help_;Modules\LoadGameHook.cpp
void game_quit_with_confirm()call fo::funcoffs::game_quit_with_confirm_;WinProc.cpp
void gdialogActive()jmp fo::funcoffs::gdialogActive_;Modules\BugFixes.cpp
call fo::funcoffs::gdialogActive_;Modules\BugFixes.cpp
void gdialogDisplayMsg(char* message)cmp dword ptr [esp + 0x1AC - 0x14 + 4], 0x445448; // gdialogDisplayMsg_Modules\BugFixes.cpp
cmp dword ptr [esp + 0x1AC - 0x14 + 4], 0x445448; // gdialogDisplayMsg_Modules\BugFixes.cpp
jmp fo::funcoffs::gdialogDisplayMsg_;Modules\BugFixes.cpp
cmp dword ptr [esp + 0x1AC - 0x14], 0x445448; // gdialogDisplayMsg_Modules\BugFixes.cpp
fo::func::gdialogDisplayMsg(message);Modules\Scripting\Handlers\Interface.cpp
void gdReviewInit()call fo::funcoffs::gdReviewInit_;Modules\LoadGameHook.cpp
void gdReviewExit()jmp fo::funcoffs::gdReviewExit_;Modules\LoadGameHook.cpp
void gdDestroyHeadWindow()call fo::funcoffs::gdDestroyHeadWindow_;Modules\LoadGameHook.cpp
void talk_to_critter_reacts()jmp fo::funcoffs::talk_to_critter_reacts_; // -1 - good, 0 - neutral, 1 - badModules\BugFixes.cpp
void gdialog_window_create()call fo::funcoffs::gdialog_window_create_;Modules\LoadGameHook.cpp
void gdialog_window_destroy()jmp fo::funcoffs::gdialog_window_destroy_;Modules\LoadGameHook.cpp
jmp fo::funcoffs::gdialog_window_destroy_;Modules\LoadGameHook.cpp
void talk_to_translucent_trans_buf_to_buf()jmp fo::funcoffs::talk_to_translucent_trans_buf_to_buf_;Modules\TalkingHeads.cpp
void gmouse_bk_process()jmp fo::funcoffs::gmouse_bk_process_;HRP\Init.cpp
DWORD gmouse_set_cursor(DWORD picNum)call fo::funcoffs::gmouse_set_cursor_;Modules\BugFixes.cpp
fo::func::gmouse_set_cursor(1);Modules\HeroAppearance.cpp
fo::func::gmouse_set_cursor(oldMouse);Modules\HeroAppearance.cpp
call fo::funcoffs::gmouse_set_cursor_;Modules\LoadGameHook.cpp
fo::func::gmouse_set_cursor(20);Modules\PartyControl.cpp
fo::func::gmouse_set_cursor(0);Modules\PartyControl.cpp
void gmouse_3d_set_mode(DWORD mode)fo::func::gmouse_3d_set_mode(2);Modules\PartyControl.cpp
fo::func::gmouse_3d_set_mode(1);Modules\PartyControl.cpp
fo::func::gmouse_3d_set_mode(ctx.arg(0).rawValue());Modules\Scripting\Handlers\Interface.cpp
GameObject* object_under_mouse(DWORD crSwitch, DWORD inclDude, DWORD elevation)fo::GameObject* underObject = fo::func::object_under_mouse(1, 0, fo::var::map_elevation);Modules\PartyControl.cpp
fo::func::object_under_mouse(ctx.arg(0).asBool() ? 1 : -1, ctx.arg(1).rawValue(), fo::var::map_elevation)Modules\Scripting\Handlers\Objects.cpp
void gmovie_play()jmp fo::funcoffs::gmovie_play_;Modules\MiscPatches.cpp
MakeJump(0x44E690, gmovie_play_hack);Modules\Movies.cpp
void gmovieIsPlaying()jmp fo::funcoffs::gmovieIsPlaying_;Modules\BugFixes.cpp
void gsound_background_volume_get()backgroundVolume = fo::func::gsound_background_volume_get_set(0);Modules\Movies.cpp
if (backgroundVolume) backgroundVolume = fo::func::gsound_background_volume_get_set(backgroundVolume); // restore volumeModules\Movies.cpp
DWORD gsound_background_volume_get_set(DWORD setVolume)backgroundVolume = fo::func::gsound_background_volume_get_set(0);Modules\Movies.cpp
if (backgroundVolume) backgroundVolume = fo::func::gsound_background_volume_get_set(backgroundVolume); // restore volumeModules\Movies.cpp
void gsound_background_play()jmp fo::funcoffs::gsound_background_play_;Modules\MiscPatches.cpp
void gsound_background_play_level_music()jmp fo::funcoffs::gsound_background_play_level_music_;Modules\MiscPatches.cpp
void gsound_background_stop()__asm call fo::funcoffs::gsound_background_stop_;Modules\Sound.cpp
jmp fo::funcoffs::gsound_background_stop_;Modules\Sound.cpp
void gsound_background_restart_last()__asm call fo::funcoffs::gsound_background_restart_last_;Modules\Sound.cpp
void gsound_background_pause()jmp fo::funcoffs::gsound_background_pause_;Modules\Sound.cpp
void gsound_background_unpause()jmp fo::funcoffs::gsound_background_unpause_;Modules\Sound.cpp
void gsound_speech_length_get()jmp fo::funcoffs::gsound_speech_length_get_;Modules\Sound.cpp
void gsound_speech_play()call fo::funcoffs::gsound_speech_play_;Modules\Sound.cpp
void gsound_delete_sfx()call fo::funcoffs::gsound_delete_sfx_;Modules\Animations.cpp
void gsound_red_butt_press()__asm call fo::funcoffs::gsound_red_butt_press_;Modules\ExtraSaveSlots.cpp
__asm call fo::funcoffs::gsound_red_butt_press_;Modules\ExtraSaveSlots.cpp
__asm call fo::funcoffs::gsound_red_butt_press_;Modules\ExtraSaveSlots.cpp
__asm call fo::funcoffs::gsound_red_butt_press_;Modules\ExtraSaveSlots.cpp
mov edx, fo::funcoffs::gsound_red_butt_press_;Modules\Interface.cpp
mov edx, fo::funcoffs::gsound_red_butt_press_;Modules\QuestList.cpp
void gsound_red_butt_release()mov ebx, fo::funcoffs::gsound_red_butt_release_;Modules\Interface.cpp
mov ebx, fo::funcoffs::gsound_red_butt_release_;Modules\QuestList.cpp
void gsound_med_butt_press()mov edx, fo::funcoffs::gsound_med_butt_press_;Modules\Interface.cpp
mov edx, 0x451988 // gsound_med_butt_press_Modules\MiscPatches.cpp
void gsound_med_butt_release()mov ebx, 0x451990 // gsound_med_butt_release_Modules\MiscPatches.cpp
void gsound_play_sfx_file(char* name)fo::func::gsound_play_sfx_file((const char*)0x50163C); // "monitor"Game\GUI\Text.cpp
jmp fo::funcoffs::gsound_play_sfx_file_;Modules\DebugEditor.cpp
fo::func::gsound_play_sfx_file("ib1p1xx1");Modules\HeroAppearance.cpp
fo::func::gsound_play_sfx_file("ib1p1xx1");Modules\HeroAppearance.cpp
fo::func::gsound_play_sfx_file("ib1p1xx1");Modules\HeroAppearance.cpp
fo::func::gsound_play_sfx_file("ib3p1xx1");Modules\HeroAppearance.cpp
fo::func::gsound_play_sfx_file("ISDXXXX1");Modules\HeroAppearance.cpp
fo::func::gsound_play_sfx_file("IB3LU1X1");Modules\HeroAppearance.cpp
call fo::funcoffs::gsound_play_sfx_file_;Modules\Interface.cpp
call fo::funcoffs::gsound_play_sfx_file_;Modules\Interface.cpp
fo::func::gsound_play_sfx_file("IISXXXX1");Modules\LoadGameHook.cpp
jmp fo::funcoffs::gsound_play_sfx_file_;Modules\MiscPatches.cpp
call fo::funcoffs::gsound_play_sfx_file_;Modules\Sound.cpp
void correctFidForRemovedItem(GameObject* critter, GameObject* item, DWORD slotFlag)if (result) fo::func::correctFidForRemovedItem(critter, item, flags);Game\inventory.cpp
jmp fo::funcoffs::correctFidForRemovedItem_;Modules\HookScripts\InventoryHs.cpp
void intface_hide()__asm call fo::funcoffs::intface_hide_;Modules\Scripting\Handlers\Interface.cpp
void intface_show()__asm call fo::funcoffs::intface_show_;Modules\Scripting\Handlers\Interface.cpp
DWORD intface_is_hidden()ctx.setReturn(fo::func::intface_is_hidden());Modules\Scripting\Handlers\Interface.cpp
void intface_redraw()fo::func::intface_redraw();Modules\PartyControl.cpp
fo::func::intface_redraw();Modules\PartyControl.cpp
fo::func::intface_redraw();Modules\Scripting\Handlers\Interface.cpp
void intface_update_hit_points()call fo::funcoffs::intface_update_hit_points_;Modules\Unarmed.cpp
void intface_update_ac(DWORD animate)jmp fo::funcoffs::intface_update_ac_;Modules\BugFixes.cpp
if (isDude) fo::func::intface_update_ac(0);Modules\Scripting\Handlers\Inventory.cpp
void intface_update_move_points(DWORD ap, DWORD freeAP)if (obj == fo::var::obj_dude) fo::func::intface_update_move_points(ap, fo::var::combat_free_move);Modules\Scripting\Handlers\Stats.cpp
DWORD intface_get_attack(DWORD* hitMode, DWORD* isSecondary)ctx.setReturn(!fo::func::intface_get_attack(&unused, &isAimed) ? isAimed : 0);Modules\Scripting\Handlers\Combat.cpp
void intface_update_items(DWORD animate, DWORD modeLeft, DWORD modeRight)jmp fo::funcoffs::intface_update_items_;Modules\Inventory.cpp
jmp fo::funcoffs::intface_update_items_;Modules\Unarmed.cpp
if (update) fo::func::intface_update_items(0, -1, -1);Modules\Scripting\Handlers\Inventory.cpp
void intface_toggle_items()jmp fo::funcoffs::intface_toggle_items_;Modules\Scripting\Handlers\Inventory.cpp
void intface_get_item_states()call fo::funcoffs::intface_get_item_states_;Modules\Unarmed.cpp
void intface_toggle_item_state()fo::func::intface_toggle_item_state();Modules\Inventory.cpp
void intface_use_item()fo::func::intface_use_item();Modules\Inventory.cpp
fo::func::intface_use_item();Modules\Inventory.cpp
DWORD intface_is_item_right_hand()auto itemInHand = fo::func::intface_is_item_right_hand()Game\inventory.cpp
void construct_box_bar_win()call fo::funcoffs::construct_box_bar_win_;Modules\BarBoxes.cpp
void reset_box_bar_win()call fo::funcoffs::reset_box_bar_win_;Modules\BarBoxes.cpp
void refresh_box_bar_win()__asm call fo::funcoffs::refresh_box_bar_win_;Modules\BarBoxes.cpp
__asm call fo::funcoffs::refresh_box_bar_win_;Modules\BarBoxes.cpp
void add_bar_box()call fo::funcoffs::add_bar_box_;Modules\BarBoxes.cpp
char* findCurrentProc(Program* program)metafunc, fo::var::currentProgram->fileName, fo::func::findCurrentProc(fo::var::currentProgram));Modules\MetaruleExtender.cpp
const char* procName = fo::func::findCurrentProc(_program);Modules\Scripting\OpcodeContext.cpp
void interpretError()__asm jmp fo::funcoffs::interpretError_;FalloutEngine\Functions.cpp
fo::func::interpretError("Unknown opcode: %d", opcode);Modules\Scripting\Opcodes.cpp
void fetchLong()SafeWrite32(0x4672A4, 0x0F02048B);Modules\MiscPatches.cpp
void pushLongStack()call fo::funcoffs::pushLongStack_;Modules\BugFixes.cpp
void interpretPushShort()call fo::funcoffs::interpretPushShort_; // pushes value type to Data stack (must be preceded by InterpretPushLong)FalloutEngine\Functions.cpp
call fo::funcoffs::interpretPushShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPushShort_;Modules\Scripting\Handlers\Graphics.cpp
void interpretPushLong()call fo::funcoffs::interpretPushLong_; // pushes value to Data stack (must be followed by InterpretPushShort)FalloutEngine\Functions.cpp
call fo::funcoffs::interpretPushLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPushLong_;Modules\Scripting\Handlers\Graphics.cpp
DWORD interpretPopShort(Program* scriptPtr)call fo::funcoffs::interpretPopShort_; // pops value type from Data stack (must be followed by InterpretPopLong)FalloutEngine\Functions.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopShort_;Modules\Scripting\Handlers\Graphics.cpp
if ((short)fo::func::interpretPopShort(script) != (short)VAR_TYPE_INT) illegalArg++;Modules\Scripting\Handlers\Memory.cpp
DWORD interpretPopLong(Program* scriptPtr)call fo::funcoffs::interpretPopLong_; // pops value from Data stack (must be preceded by InterpretPopShort)FalloutEngine\Functions.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretPopLong_;Modules\Scripting\Handlers\Graphics.cpp
args[i] = fo::func::interpretPopLong(script);Modules\Scripting\Handlers\Memory.cpp
void interpretFreeProgram()call fo::funcoffs::interpretFreeProgram_;Modules\ScriptExtender.cpp
Program* allocateProgram(char* filePath)? fo::func::allocateProgram(fileName)Modules\ScriptExtender.cpp
char* interpretGetString(Program* scriptPtr, DWORD dataType, DWORD strId)call fo::funcoffs::interpretGetString_; // retrieve string argumentFalloutEngine\Functions.cpp
call fo::funcoffs::interpretGetString_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretGetString_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretGetString_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretGetString_;Modules\Scripting\Handlers\Graphics.cpp
call fo::funcoffs::interpretGetString_;Modules\Scripting\Handlers\Graphics.cpp
const char* str = fo::func::interpretGetString(script, type, strID);Modules\Scripting\Handlers\Memory.cpp
call fo::funcoffs::interpretGetString_;Modules\Scripting\Handlers\Perks.cpp
void interpretAddString()call fo::funcoffs::interpretAddString_;FalloutEngine\Functions.cpp
DWORD interpret(Program* program, DWORD arg2)prog.procLookup[i] = fo::func::interpretFindProcedure(prog.ptr, procTable[i]);Modules\ScriptExtender.cpp
fo::func::interpret(prog.ptr, -1);Modules\ScriptExtender.cpp
int procPosition = fo::func::interpretFindProcedure(sptr, procName);Modules\ScriptExtender.cpp
DWORD rawValue = fo::func::interpretGetValue(_program, rawValueType);Modules\Scripting\OpcodeContext.cpp
fo::func::interpretReturnValue(_program, _ret.rawValue(), getScriptTypeBySfallType(_ret.type()));Modules\Scripting\OpcodeContext.cpp
fo::func::interpretError("Unknown opcode: %d", opcode);Modules\Scripting\Opcodes.cpp
const char* str = fo::func::interpretGetString(script, type, strID);Modules\Scripting\Handlers\Memory.cpp
if ((short)fo::func::interpretPopShort(script) != (short)VAR_TYPE_INT) illegalArg++;Modules\Scripting\Handlers\Memory.cpp
args[i] = fo::func::interpretPopLong(script);Modules\Scripting\Handlers\Memory.cpp
void executeProc()fo::func::executeProcedure(sptr, procPosition);Modules\ScriptExtender.cpp
fo::func::executeProcedure(prog->ptr, procPosition);Modules\ScriptExtender.cpp
fo::func::executeProcedure(prog->ptr, procPosition);Modules\ScriptExtender.cpp
fo::func::executeProcedure(script->prog.ptr, script->startProc); // run "start"Modules\ScriptExtender.cpp
fo::func::executeProcedure(hook->prog.ptr, hook->callback);Modules\HookScripts\Common.cpp
DWORD interpretFindProcedure(Program* scriptPtr, char* procName)prog.procLookup[i] = fo::func::interpretFindProcedure(prog.ptr, procTable[i]);Modules\ScriptExtender.cpp
int procPosition = fo::func::interpretFindProcedure(sptr, procName);Modules\ScriptExtender.cpp
void executeProcedure(Program* sptr, DWORD procNum)fo::func::executeProcedure(sptr, procPosition);Modules\ScriptExtender.cpp
fo::func::executeProcedure(prog->ptr, procPosition);Modules\ScriptExtender.cpp
fo::func::executeProcedure(prog->ptr, procPosition);Modules\ScriptExtender.cpp
fo::func::executeProcedure(script->prog.ptr, script->startProc); // run "start"Modules\ScriptExtender.cpp
fo::func::executeProcedure(hook->prog.ptr, hook->callback);Modules\HookScripts\Common.cpp
call fo::funcoffs::executeProcedure_;Modules\HookScripts\ObjectHs.cpp
call fo::funcoffs::executeProcedure_;Modules\Scripting\Handlers\Anims.cpp
DWORD* runProgram(Program* progPtr)fo::func::runProgram(prog.ptr);Modules\ScriptExtender.cpp
fo::func::runProgram(scriptPtr->program);Modules\ScriptExtender.cpp
fo::func::runProgram(it->prog.ptr);Modules\ScriptExtender.cpp
void exit_inventory()jmp fo::funcoffs::exit_inventory_;Modules\LoadGameHook.cpp
jmp fo::funcoffs::exit_inventory_;Modules\LoadGameHook.cpp
void display_inventory(DWORD inventoryOffset, DWORD visibleOffset, DWORD mode)fo::func::display_inventory(0, -1, mode);Modules\Scripting\Handlers\Interface.cpp
void display_target_inventory(DWORD inventoryOffset, DWORD visibleOffset, DWORD* targetInventory, DWORD mode)fo::func::display_target_inventory(0, -1, fo::var::target_pud, mode);Modules\Scripting\Handlers\Interface.cpp
void inven_set_mouse()jmp fo::funcoffs::inven_set_mouse_;Modules\LoadGameHook.cpp
jmp fo::funcoffs::inven_set_mouse_;Modules\LoadGameHook.cpp
jmp fo::funcoffs::inven_set_mouse_;Modules\LoadGameHook.cpp
void switch_hand()jmp fo::funcoffs::switch_hand_;Modules\PartyControl.cpp
jmp fo::funcoffs::switch_hand_;Modules\HookScripts\InventoryHs.cpp
void adjust_ac()call fo::funcoffs::adjust_ac_;Modules\BugFixes.cpp
call fo::funcoffs::adjust_ac_;Modules\BugFixes.cpp
call fo::funcoffs::adjust_ac_; // eax - source, edx - removed armorModules\BugFixes.cpp
call fo::funcoffs::adjust_ac_;Modules\BugFixes.cpp
void adjust_fid()sf::MakeJump(fo::funcoffs::adjust_fid_, adjust_fid_replacement); // 0x4716E8Game\inventory.cpp
GameObject* inven_right_hand(GameObject* critter)itemPtr = fo::func::inven_right_hand(critter);FalloutEngine\EngineUtils.cpp
fo::GameObject* item = fo::func::inven_right_hand(critter);Game\inventory.cpp
handItem = fo::func::inven_right_hand(source);Game\items.cpp
call fo::funcoffs::inven_right_hand_;Modules\BugFixes.cpp
if (!fo::var::itemButtonItems[fo::HandSlot::Right].item && !fo::func::inven_right_hand(fo::var::obj_dude)) {Modules\MiscPatches.cpp
auto item = fo::func::inven_right_hand(npc);Modules\PartyControl.cpp
fo::GameObject* rItem = fo::func::inven_right_hand(fo::var::obj_dude);Modules\PartyControl.cpp
call fo::funcoffs::inven_right_hand_;Modules\HookScripts\InventoryHs.cpp
ctx.setReturn(fo::func::inven_right_hand(critter));Modules\Scripting\Handlers\Inventory.cpp
GameObject* inven_left_hand(GameObject* critter)itemPtr = fo::func::inven_left_hand(critter);FalloutEngine\EngineUtils.cpp
fo::GameObject* itemL = fo::func::inven_left_hand(critter);Game\inventory.cpp
handItem = fo::func::inven_left_hand(source);Game\items.cpp
call fo::funcoffs::inven_left_hand_;Modules\BugFixes.cpp
if (!fo::var::itemButtonItems[fo::HandSlot::Left].item && !fo::func::inven_left_hand(fo::var::obj_dude)) {Modules\MiscPatches.cpp
if (fo::util::AnimCodeByWeapon(fo::func::inven_left_hand(npc)) == critterAnim) { // definitely left handModules\PartyControl.cpp
auto item = fo::func::inven_left_hand(npc);Modules\PartyControl.cpp
fo::GameObject* lItem = fo::func::inven_left_hand(fo::var::obj_dude);Modules\PartyControl.cpp
call fo::funcoffs::inven_left_hand_;Modules\HookScripts\InventoryHs.cpp
ctx.setReturn(fo::func::inven_left_hand(critter));Modules\Scripting\Handlers\Inventory.cpp
GameObject* inven_worn(GameObject* critter)itemPtr = fo::func::inven_worn(critter);FalloutEngine\EngineUtils.cpp
item = fo::func::inven_worn(critter);Game\inventory.cpp
call fo::funcoffs::inven_worn_;Modules\BugFixes.cpp
call fo::funcoffs::inven_worn_;Modules\BugFixes.cpp
call fo::funcoffs::inven_worn_;Modules\BugFixes.cpp
ctx.setReturn(fo::func::inven_worn(critter));Modules\Scripting\Handlers\Inventory.cpp
item = fo::func::inven_worn(critter);Modules\Scripting\Handlers\Inventory.cpp
GameObject* inven_pid_is_carried_ptr(GameObject* invenObj, DWORD pid)call fo::funcoffs::inven_pid_is_carried_ptr_;Modules\MiscPatches.cpp
void display_stats()jmp fo::funcoffs::display_stats_;Modules\Unarmed.cpp
fo::func::display_stats(); // calling the function outside of inventory screen will crash the gameModules\Scripting\Handlers\Interface.cpp
GameObject* inven_find_type(GameObject* critter, DWORD itemType, DWORD* slot)fo::GameObject* itemFind = fo::func::inven_find_type(source, fo::ItemType::item_type_drug, &slot);Game\combatAI.cpp
fo::GameObject* item = fo::func::inven_find_type(source, fo::ItemType::item_type_drug, &slot);Game\combatAI.cpp
item = fo::func::inven_find_type(source, fo::ItemType::item_type_drug, &slot);Game\combatAI.cpp
while (fo::GameObject* ammoFind = fo::func::inven_find_type(critter, fo::item_type_ammo, &currentSlot)) {Modules\AI.cpp
void inven_find_id()call fo::funcoffs::inven_find_id_; // check prt (fix behavior)Modules\BugFixes.cpp
jmp fo::funcoffs::inven_find_id_; // vanilla behaviorModules\BugFixes.cpp
DWORD inven_wield(GameObject* critter, GameObject* item, DWORD slot)jmp fo::funcoffs::inven_wield_;Modules\Inventory.cpp
void invenWieldFunc()jmp fo::funcoffs::invenWieldFunc_;Modules\HookScripts\InventoryHs.cpp
DWORD inven_unwield(GameObject* critter, DWORD slot)call fo::funcoffs::inven_unwield_;Modules\Inventory.cpp
if (fo::func::inven_unwield(critter, (slot == fo::INVEN_TYPE_LEFT_HAND) ? fo::Left : fo::Right) == 0) {Modules\Scripting\Handlers\Inventory.cpp
void invenUnwieldFunc()jmp fo::funcoffs::invenUnwieldFunc_;Modules\HookScripts\InventoryHs.cpp
void inven_display_msg()push fo::funcoffs::inven_display_msg_;Game\GUI\Text.cpp
call fo::funcoffs::inven_display_msg_;Modules\Inventory.cpp
jmp fo::funcoffs::inven_display_msg_;Modules\Inventory.cpp
DWORD barter_compute_value(GameObject* source, GameObject* target)long computeCost = fo::func::barter_compute_value(source, target);Modules\HookScripts\MiscHs.cpp
void barter_inventory()call fo::funcoffs::barter_inventory_;Modules\LoadGameHook.cpp
void drop_into_container()call fo::funcoffs::drop_into_container_;Modules\HookScripts\InventoryHs.cpp
void setup_move_timer_win()jmp fo::funcoffs::setup_move_timer_win_;Modules\Inventory.cpp
void item_add_mult()jmp fo::funcoffs::item_add_mult_;Modules\BugFixes.cpp
DWORD item_add_force(GameObject* critter, GameObject* item, DWORD count)fo::func::item_add_force(source, item, 1);Game\items.cpp
call fo::funcoffs::item_add_force_;Modules\BugFixes.cpp
jmp fo::funcoffs::item_add_force_;Modules\BugFixes.cpp
jmp fo::funcoffs::item_add_force_;Modules\Inventory.cpp
jmp fo::funcoffs::item_add_force_;Modules\HookScripts\InventoryHs.cpp
if (forceAdd) fo::func::item_add_force(critter, item, 1);Modules\Scripting\Handlers\Inventory.cpp
DWORD item_remove_mult(GameObject* critter, GameObject* item, DWORD count)return fo::func::item_remove_mult(source, item, count);Game\items.cpp
call fo::funcoffs::item_remove_mult_;Modules\BugFixes.cpp
call fo::funcoffs::item_remove_mult_;Modules\BugFixes.cpp
__asm call fo::funcoffs::item_remove_mult_;Modules\HookScripts\InventoryHs.cpp
MakeJump(0x477492, RemoveObjHook); // old 0x477490Modules\HookScripts\InventoryHs.cpp
void item_move_all()jmp fo::funcoffs::item_move_all_;Modules\HookScripts\InventoryHs.cpp
jmp fo::funcoffs::item_move_all_;Modules\HookScripts\InventoryHs.cpp
void item_move_all_hidden()call fo::funcoffs::item_move_all_hidden_;Modules\BugFixes.cpp
DWORD item_get_type(GameObject* item)} else if (fo::func::item_get_type(tableItem->object) == fo::item_type_container) {Game\items.cpp
jmp fo::funcoffs::item_get_type_;Modules\BugFixes.cpp
if (fo::func::item_get_type(item) == fo::ItemType::item_type_weapon) {Modules\Inventory.cpp
call fo::funcoffs::item_get_type_;Modules\Inventory.cpp
if (/*isControllingNPC &&*/ fo::func::item_get_type(item) == fo::ItemType::item_type_weapon) {Modules\PartyControl.cpp
if (itemReplaced && fo::func::item_get_type(itemReplaced) == fo::item_type_weapon && fo::func::item_get_type(item) == fo::item_type_ammo) {Modules\HookScripts\InventoryHs.cpp
if (args[2] != fo::INVEN_TYPE_RIGHT_HAND && fo::func::item_get_type((fo::GameObject*)args[1]) != fo::item_type_armor) {Modules\HookScripts\InventoryHs.cpp
call fo::funcoffs::item_get_type_;Modules\SubModules\CombatBlock.cpp
DWORD item_size(GameObject* item)totalSize += fo::func::item_size(item);Game\inventory.cpp
totalSize += fo::func::item_size(itemL);Game\inventory.cpp
totalSize += fo::func::item_size(item);Game\inventory.cpp
call fo::funcoffs::item_size_;Modules\BugFixes.cpp
call fo::funcoffs::item_size_;Modules\BugFixes.cpp
call fo::funcoffs::item_size_;Modules\BugFixes.cpp
call fo::funcoffs::item_size_;Modules\BugFixes.cpp
call fo::funcoffs::item_size_;Modules\BugFixes.cpp
int totalSize = game::Inventory::item_total_size(critter) + (fo::func::item_size(item) * count);Modules\Inventory.cpp
int size = fo::func::item_size(item);Modules\Inventory.cpp
DWORD item_weight(GameObject* item)call fo::funcoffs::item_weight_;Modules\BugFixes.cpp
call fo::funcoffs::item_weight_;Modules\BugFixes.cpp
call fo::funcoffs::item_weight_;Modules\BugFixes.cpp
call fo::funcoffs::item_weight_;Modules\BugFixes.cpp
call fo::funcoffs::item_weight_;Modules\BugFixes.cpp
ctx.setReturn(fo::func::item_weight(ctx.arg(0).object()));Modules\Scripting\Handlers\Inventory.cpp
DWORD item_total_cost(GameObject* object)args[5] = fo::func::item_total_cost(bTable);Modules\HookScripts\MiscHs.cpp
args[7] = pcCost = fo::func::item_total_cost(pTable);Modules\HookScripts\MiscHs.cpp
DWORD item_total_weight(GameObject* object)call fo::funcoffs::item_total_weight_;Modules\BugFixes.cpp
call fo::funcoffs::item_total_weight_;Modules\BugFixes.cpp
call fo::funcoffs::item_total_weight_;Modules\BugFixes.cpp
jmp fo::funcoffs::item_total_weight_;Modules\Inventory.cpp
pcCost = fo::func::item_total_weight(pTable);Modules\HookScripts\MiscHs.cpp
void can_use_weapon()call fo::funcoffs::can_use_weapon_; // 1 - can't useModules\HookScripts\CombatHs.cpp
GameObject* item_hit_with(GameObject* critter, DWORD hitMode)// return item_weapon_range(source, fo::func::item_hit_with(source, hitMode), hitMode);Game\items.cpp
call fo::funcoffs::item_hit_with_; // get pointer to weaponModules\Perks.cpp
call fo::funcoffs::item_hit_with_; // get pointer to weaponModules\Perks.cpp
void item_mp_cost()call fo::funcoffs::item_mp_cost_;Modules\AI.cpp
DWORD item_w_subtype(GameObject* item, DWORD hitMode)long type = fo::func::item_w_subtype(item, hitMode);Game\items.cpp
long wType = fo::func::item_w_subtype(item, fo::AttackType::ATKTYPE_RWEAPON_PRIMARY);Modules\AI.cpp
call fo::funcoffs::item_w_subtype_;Modules\BugFixes.cpp
jmp fo::funcoffs::item_w_subtype_; // eax - itemModules\Perks.cpp
call fo::funcoffs::item_w_subtype_;Modules\Perks.cpp
DWORD item_w_damage(GameObject* critter, DWORD hitMode)long rawDamage = fo::func::item_w_damage(ctd.attacker, ctd.hitMode); // get the raw damage valueModules\DamageMod.cpp
long rawDamage = fo::func::item_w_damage(ctd.attacker, ctd.hitMode); // Retrieve Raw DamageModules\DamageMod.cpp
void item_w_damage_type()jmp fo::funcoffs::item_w_damage_type_;Modules\Combat.cpp
jmp fo::funcoffs::item_w_damage_type_;Modules\Skills.cpp
void item_w_anim()if (fo::func::item_w_anim_weap(weapon, fo::AttackType::ATKTYPE_RWEAPON_SECONDARY) == fo::Animation::ANIM_fire_burst) {Modules\AI.cpp
long anim = fo::func::item_w_anim_weap(weapon, hitMode);Modules\Combat.cpp
long anim = fo::func::item_w_anim_weap(weapon, fo::AttackType::ATKTYPE_RWEAPON_SECONDARY);Modules\Combat.cpp
DWORD item_w_anim_weap(GameObject* item, DWORD hitMode)if (fo::func::item_w_anim_weap(weapon, fo::AttackType::ATKTYPE_RWEAPON_SECONDARY) == fo::Animation::ANIM_fire_burst) {Modules\AI.cpp
long anim = fo::func::item_w_anim_weap(weapon, hitMode);Modules\Combat.cpp
long anim = fo::func::item_w_anim_weap(weapon, fo::AttackType::ATKTYPE_RWEAPON_SECONDARY);Modules\Combat.cpp
DWORD item_w_max_ammo(GameObject* item)long maxAmmo = fo::func::item_w_max_ammo(item);Modules\Inventory.cpp
DWORD item_w_curr_ammo(GameObject* item)long currAmmo = fo::func::item_w_curr_ammo(weapon);Modules\Combat.cpp
long curAmmo = fo::func::item_w_curr_ammo(item);Modules\Inventory.cpp
void item_w_can_reload()jmp fo::funcoffs::item_w_can_reload_;Modules\HookScripts\InventoryHs.cpp
DWORD item_w_reload(GameObject* weapon, GameObject* ammo)result = fo::func::item_w_reload(weapon, ammo);Modules\AI.cpp
jmp fo::funcoffs::item_w_reload_;Modules\AI.cpp
DWORD item_w_range(GameObject* critter, DWORD hitMode)} else if (fastShotTweak < 2 && type > fo::AttackSubType::MELEE && fo::func::item_w_range(source, hitMode) >= 2) { // Fallout 2 behavior (with Haenlomal's fix)Game\items.cpp
if (fo::func::item_w_range(source, fo::AttackType::ATKTYPE_PUNCH) >= fo::func::obj_dist(source, target)) {Modules\AI.cpp
long weaponRange = fo::func::item_w_range(source, fo::ATKTYPE_RWEAPON_SECONDARY);Modules\AI.cpp
jmp fo::funcoffs::item_w_range_;Modules\MiscPatches.cpp
call fo::funcoffs::item_w_range_;Modules\Perks.cpp
call fo::funcoffs::item_w_range_; // get weapon's rangeModules\Perks.cpp
DWORD item_w_mp_cost(GameObject* source, DWORD hitMode, DWORD isCalled)sf::MakeJump(fo::funcoffs::item_w_mp_cost_ + 1, item_w_mp_cost_hack); // 0x478B25Game\items.cpp
call fo::funcoffs::item_w_mp_cost_;Modules\HookScripts\CombatHs.cpp
void item_w_perk()jmp fo::funcoffs::item_w_perk_;Modules\BugFixes.cpp
DWORD item_w_rounds(GameObject* item)rounds = fo::func::item_w_rounds(weapon); // ammo in burstModules\Combat.cpp
DWORD item_w_primary_mp_cost(GameObject* item)cost = fo::func::item_w_primary_mp_cost(weapon);Game\items.cpp
DWORD item_w_secondary_mp_cost(GameObject* item)cost = fo::func::item_w_secondary_mp_cost(weapon);Game\items.cpp
DWORD item_w_compute_ammo_cost(GameObject* item, DWORD* rounds)fo::func::item_w_compute_ammo_cost(weapon, &newRounds);Modules\Combat.cpp
result = fo::func::item_w_compute_ammo_cost(weapon, &rounds);Modules\HookScripts\CombatHs.cpp
DWORD item_w_dr_adjust(GameObject* item)long ammoDRM = fo::func::item_w_dr_adjust(ctd.weapon); // ammoDRM valueModules\DamageMod.cpp
long ammoDT = fo::func::item_w_dr_adjust(ctd.weapon); // Retrieve ammo DT (well, it's really Retrieve ammo DR, but since we're treating ammo DR as ammo DT...)Modules\DamageMod.cpp
DWORD item_w_dam_mult(GameObject* item)long ammoX = fo::func::item_w_dam_mult(ctd.weapon); // ammoX valueModules\DamageMod.cpp
long ammoMult = fo::func::item_w_dam_mult(ctd.weapon); // Retrieve Ammo DividendModules\DamageMod.cpp
DWORD item_w_dam_div(GameObject* item)long ammoY = fo::func::item_w_dam_div(ctd.weapon); // ammoY value (divisor)Modules\DamageMod.cpp
long ammoDiv = fo::func::item_w_dam_div(ctd.weapon); // Retrieve Ammo DivisorModules\DamageMod.cpp
void item_m_turn_off()jmp fo::funcoffs::item_m_turn_off_;Modules\BugFixes.cpp
DWORD item_c_curr_size(GameObject* critter)int totalSize = fo::func::item_c_curr_size(critter);Game\inventory.cpp
call fo::funcoffs::item_c_curr_size_;Modules\BugFixes.cpp
call fo::funcoffs::item_c_curr_size_;Modules\BugFixes.cpp
DWORD item_d_take_drug(GameObject* source, GameObject* item)return fo::func::item_d_take_drug(source, item);Game\items.cpp
jmp fo::funcoffs::item_d_take_drug_;Modules\HookScripts\ObjectHs.cpp
void insert_withdrawal()call fo::funcoffs::insert_withdrawal_;Modules\BugFixes.cpp
void perform_withdrawal_end()call fo::funcoffs::perform_withdrawal_end_;Modules\BugFixes.cpp
DWORD item_caps_total(GameObject* object)call fo::funcoffs::item_caps_total_;Modules\BugFixes.cpp
args[4] = fo::func::item_caps_total(bTable);Modules\HookScripts\MiscHs.cpp
DWORD light_get_tile(DWORD elevation, DWORD tileNum)int lightLevel = fo::func::light_get_tile(ctx.arg(0).rawValue(), ctx.arg(1).rawValue());Modules\Scripting\Handlers\Misc.cpp
void SaveGame()call fo::funcoffs::SaveGame_;Modules\LoadGameHook.cpp
void LoadGame()call fo::funcoffs::LoadGame_;Modules\LoadGameHook.cpp
void GetSlotList()jmp fo::funcoffs::GetSlotList_; // reset page save list funcModules\ExtraSaveSlots.cpp
void EndLoad(DbFile* file)call fo::funcoffs::EndLoad_;Modules\LoadGameHook.cpp
void MapDirErase(char* folder, char* ext)fo::func::MapDirErase(_F_PROTO_CRITTERS, _F_SAV);Modules\LoadOrder.cpp
void RestoreLoad()//0x480708, // RestoreLoad_ (never called)Modules\LoadGameHook.cpp
void main_init_system()call fo::funcoffs::main_init_system_;Modules\LoadGameHook.cpp
void main_reset_system()//0x480D0C, // main_reset_system_ (never called)Modules\LoadGameHook.cpp
void main_load_new()call fo::funcoffs::main_load_new_;Modules\LoadGameHook.cpp
void main_menu_create()jmp fo::funcoffs::main_menu_create_;Modules\LoadGameHook.cpp
void main_menu_is_shown()call fo::funcoffs::main_menu_is_shown_;WinProc.cpp
void map_exit()jmp fo::funcoffs::map_exit_;Modules\LoadGameHook.cpp
void map_enable_bk_processes()jmp fo::funcoffs::map_enable_bk_processes_;Modules\PartyControl.cpp
jmp fo::funcoffs::map_enable_bk_processes_;Modules\Scripting\Handlers\Misc.cpp
void map_disable_bk_processes()jmp fo::funcoffs::map_disable_bk_processes_;Modules\Scripting\Handlers\Misc.cpp
void map_set_elevation()jmp fo::funcoffs::map_set_elevation_;Modules\MiscPatches.cpp
void map_load()call fo::funcoffs::map_load_;Modules\Worldmap.cpp
void map_load_idx()jmp fo::funcoffs::map_load_idx_;Modules\MiscPatches.cpp
jmp fo::funcoffs::map_load_idx_;Modules\Worldmap.cpp
jmp fo::funcoffs::map_load_idx_; // eax - map idModules\HookScripts\MiscHs.cpp
call fo::funcoffs::map_load_idx_;Modules\HookScripts\MiscHs.cpp
jmp fo::funcoffs::map_load_idx_; // eax - mapIDModules\Scripting\Handlers\Worldmap.cpp
void map_load_file()call fo::funcoffs::map_load_file_;Modules\LoadGameHook.cpp
void map_target_load_area()call fo::funcoffs::map_target_load_area_; // returns the area ID of the loaded mapModules\MiscPatches.cpp
void map_fix_critter_combat_data()jmp fo::funcoffs::map_fix_critter_combat_data_;Modules\Objects.cpp
void map_scroll_refresh_mapper()// //fo::var::setInt(FO_VAR_map_scroll_refresh) = fo::funcoffs::map_scroll_refresh_mapper_;Modules\DebugEditor.cpp
DWORD message_exit(MessageList* msgList)fo::func::message_exit(&MsgList);Modules\HeroAppearance.cpp
fo::func::message_exit(it->second.get());Modules\Message.cpp
fo::func::message_exit(it->second.get());Modules\Message.cpp
DWORD message_load(MessageList* msgList, char* msgFilePath)if (fo::func::message_load(&MsgList, MsgFileName) == 1) {Modules\HeroAppearance.cpp
if (fo::func::message_load(&MsgList, "game\\AppIface.msg") == 1) {Modules\HeroAppearance.cpp
if (fo::func::message_load(&MsgList, "game\\AppIface.msg") == 1) {Modules\HeroAppearance.cpp
if (fo::func::message_load(list, path.c_str()) == 1) {Modules\Message.cpp
if (!fo::func::message_load(list, path.c_str())) {Modules\Message.cpp
//if (!fo::func::message_load(list, path.c_str())) {Modules\Message.cpp
DWORD message_search(MessageList* file, MessageNode* msg)if (fo::func::message_search(file, &messageBuf) == 1) {FalloutEngine\EngineUtils.cpp
jmp fo::funcoffs::message_search_;Modules\BugFixes.cpp
jmp fo::funcoffs::message_search_;Modules\BugFixes.cpp
call fo::funcoffs::message_search_;Modules\Message.cpp
DWORD message_find(DWORD* msgFile, DWORD msgNumber, DWORD* outBuf)fo::func::message_find(msgFile, msgData->number, &outValue);Modules\Message.cpp
char* getmsg(MessageList* fileAddr, MessageNode* result, DWORD messageId)return fo::func::getmsg(file, &messageBuf, messageId);FalloutEngine\EngineUtils.cpp
jmp fo::funcoffs::getmsg_;Modules\BarBoxes.cpp
call fo::funcoffs::getmsg_;Modules\QuestList.cpp
call fo::funcoffs::getmsg_;Modules\QuestList.cpp
void movieStop()jmp fo::funcoffs::movieStop_;Modules\Movies.cpp
void movieRun()call fo::funcoffs::movieRun_;Modules\Movies.cpp
void movieUpdate()__asm call fo::funcoffs::movieUpdate_; // for reading subtitles when playing mveModules\Movies.cpp
void obj_new()jmp fo::funcoffs::obj_new_;Modules\BugFixes.cpp
fo::func::obj_new_sid_inst(object, scriptType, scriptIndex);Modules\Scripting\Handlers\Objects.cpp
DWORD obj_pid_new(GameObject* object, DWORD pid)if (fo::func::obj_pid_new((fo::GameObject*)&object, pid) != -1) { // create new objectModules\HookScripts\DeathHs.cpp
DWORD obj_connect(GameObject* object, DWORD tile, DWORD elevation, RECT* rect)fo::func::obj_connect(item, source->tile, source->elevation, 0);Game\items.cpp
DWORD obj_move_to_tile(GameObject* object, DWORD tile, DWORD elevation, RECT* rect)jmp fo::funcoffs::obj_move_to_tile_;Modules\BugFixes.cpp
call fo::funcoffs::obj_move_to_tile_;Modules\BugFixes.cpp
void obj_change_fid()//fo::func::obj_change_fid(critter, artID, 0);Modules\BugFixes.cpp
void obj_set_light()call fo::funcoffs::obj_set_light_;Modules\Explosions.cpp
void obj_turn_off_light()jmp fo::funcoffs::obj_turn_off_light_;Modules\HookScripts\ObjectHs.cpp
void obj_turn_on()call fo::funcoffs::obj_turn_on_;Modules\BugFixes.cpp
DWORD obj_erase_object(GameObject* object, RECT* boundRect)if (createNewObj) fo::func::obj_erase_object(weapon, 0); // delete created objectModules\HookScripts\DeathHs.cpp
GameObject* obj_find_first()fo::GameObject* obj = fo::func::obj_find_first_at_tile(elev, tile);FalloutEngine\EngineUtils.cpp
fo::GameObject* obj = fo::func::obj_find_first();Game\objects.cpp
fo::GameObject* object = fo::func::obj_find_first_at_tile(srcObject->elevation, tile);Game\tilemap.cpp
fo::GameObject* obj = fo::func::obj_find_first_at_tile(elv, tile);Modules\DebugEditor.cpp
fo::GameObject* obj = fo::func::obj_find_first();Modules\Objects.cpp
fo::GameObject* obj = fo::func::obj_find_first_at_tile(elv, tile);Modules\Scripting\Handlers\Arrays.cpp
auto obj = fo::func::obj_find_first_at_tile(elevation, tile);Modules\Scripting\Handlers\Objects.cpp
GameObject* obj_find_next()obj = fo::func::obj_find_next_at_tile();FalloutEngine\EngineUtils.cpp
obj = fo::func::obj_find_next();Game\objects.cpp
object = fo::func::obj_find_next_at_tile();Game\tilemap.cpp
obj = fo::func::obj_find_next_at_tile();Modules\DebugEditor.cpp
obj = fo::func::obj_find_next();Modules\Objects.cpp
obj = fo::func::obj_find_next_at_tile();Modules\Scripting\Handlers\Arrays.cpp
obj = fo::func::obj_find_next_at_tile();Modules\Scripting\Handlers\Objects.cpp
void obj_find_first_at()fo::GameObject* obj = fo::func::obj_find_first_at_tile(elev, tile);FalloutEngine\EngineUtils.cpp
fo::GameObject* object = fo::func::obj_find_first_at_tile(srcObject->elevation, tile);Game\tilemap.cpp
fo::GameObject* obj = fo::func::obj_find_first_at_tile(elv, tile);Modules\DebugEditor.cpp
fo::GameObject* obj = fo::func::obj_find_first_at_tile(elv, tile);Modules\Scripting\Handlers\Arrays.cpp
auto obj = fo::func::obj_find_first_at_tile(elevation, tile);Modules\Scripting\Handlers\Objects.cpp
void obj_find_next_at()obj = fo::func::obj_find_next_at_tile();FalloutEngine\EngineUtils.cpp
object = fo::func::obj_find_next_at_tile();Game\tilemap.cpp
obj = fo::func::obj_find_next_at_tile();Modules\DebugEditor.cpp
obj = fo::func::obj_find_next_at_tile();Modules\Scripting\Handlers\Arrays.cpp
obj = fo::func::obj_find_next_at_tile();Modules\Scripting\Handlers\Objects.cpp
GameObject* obj_find_first_at_tile(DWORD elevation, DWORD tileNum)fo::GameObject* obj = fo::func::obj_find_first_at_tile(elev, tile);FalloutEngine\EngineUtils.cpp
fo::GameObject* object = fo::func::obj_find_first_at_tile(srcObject->elevation, tile);Game\tilemap.cpp
fo::GameObject* obj = fo::func::obj_find_first_at_tile(elv, tile);Modules\DebugEditor.cpp
fo::GameObject* obj = fo::func::obj_find_first_at_tile(elv, tile);Modules\Scripting\Handlers\Arrays.cpp
auto obj = fo::func::obj_find_first_at_tile(elevation, tile);Modules\Scripting\Handlers\Objects.cpp
GameObject* obj_find_next_at_tile()obj = fo::func::obj_find_next_at_tile();FalloutEngine\EngineUtils.cpp
object = fo::func::obj_find_next_at_tile();Game\tilemap.cpp
obj = fo::func::obj_find_next_at_tile();Modules\DebugEditor.cpp
obj = fo::func::obj_find_next_at_tile();Modules\Scripting\Handlers\Arrays.cpp
obj = fo::func::obj_find_next_at_tile();Modules\Scripting\Handlers\Objects.cpp
void obj_bound(GameObject* object, RECT* boundRect)fo::func::obj_bound(obj, &rect);FalloutEngine\EngineUtils.cpp
fo::func::obj_bound(targetObject, &rect);Modules\PartyControl.cpp
fo::func::obj_bound(underObject, &rect);Modules\PartyControl.cpp
GameObject* obj_blocking_at(GameObject* object, DWORD tile, DWORD elevation)fo::GameObject* obj = fo::func::obj_blocking_at(source, chkTile, source->elevation);FalloutEngine\EngineUtils.cpp
fo::GameObject* obj = fo::func::obj_blocking_at(source, chkTile, source->elevation);FalloutEngine\EngineUtils.cpp
obj = fo::func::obj_blocking_at(source, chkTile, source->elevation);FalloutEngine\EngineUtils.cpp
obj = fo::func::obj_blocking_at(source, chkTile, source->elevation);FalloutEngine\EngineUtils.cpp
if (checkTargetTile && fo::func::obj_blocking_at_wrapper(srcObject, targetTile, srcObject->elevation, blockFunc)) return 0;Game\tilemap.cpp
call fo::funcoffs::obj_blocking_at_;Modules\BugFixes.cpp
call fo::funcoffs::obj_blocking_at_;Modules\BugFixes.cpp
while (fo::func::obj_blocking_at(0, checkTile, elev)) {Modules\BugFixes.cpp
if (fo::func::obj_blocking_at(source, fo::func::tile_num_in_direction(tilePlace, dir, 1), elevation)) {Modules\BugFixes.cpp
jmp fo::funcoffs::obj_blocking_at_;Modules\HookScripts\CombatHs.cpp
call fo::funcoffs::obj_blocking_at_;Modules\HookScripts\CombatHs.cpp
MakeJump(0x48B848, HexMoveBlockingHook);Modules\HookScripts\HexBlockingHs.cpp
return fo::funcoffs::obj_blocking_at_; // with calling hookModules\Scripting\Handlers\Objects.cpp
fo::GameObject* resultObj = fo::func::obj_blocking_at_wrapper(0, tile, elevation, (void*)getBlockingFunc(type));Modules\Scripting\Handlers\Objects.cpp
void obj_shoot_blocking_at()push fo::funcoffs::obj_shoot_blocking_at_; // check hex objects func pointerModules\MiscPatches.cpp
call fo::funcoffs::obj_shoot_blocking_at_;Modules\HookScripts\HexBlockingHs.cpp
return fo::funcoffs::obj_shoot_blocking_at_; // w/o calling hookModules\Scripting\Handlers\Objects.cpp
void obj_ai_blocking_at()call fo::funcoffs::obj_ai_blocking_at_;Modules\HookScripts\HexBlockingHs.cpp
return fo::funcoffs::obj_ai_blocking_at_; // w/o calling hookModules\Scripting\Handlers\Objects.cpp
void obj_scroll_blocking_at()// return fo::funcoffs::obj_scroll_blocking_at_;Modules\Scripting\Handlers\Objects.cpp
void obj_sight_blocking_at()call fo::funcoffs::obj_sight_blocking_at_;Modules\HookScripts\HexBlockingHs.cpp
return fo::funcoffs::obj_sight_blocking_at_; // w/o calling hookModules\Scripting\Handlers\Objects.cpp
DWORD obj_dist(GameObject* obj_src, GameObject* obj_trg)return AIHelpers::AttackInRange(source, weapon, fo::func::obj_dist(source, target));Game\AI\AIHelpers.cpp
if (fo::func::item_w_range(source, fo::AttackType::ATKTYPE_PUNCH) >= fo::func::obj_dist(source, target)) {Modules\AI.cpp
long targetDist = fo::func::obj_dist(source, target);Modules\AI.cpp
return (fo::func::obj_dist(source, target) <= (fo::func::stat_level(source, fo::STAT_pe) * 3));Modules\MiscPatches.cpp
call fo::funcoffs::obj_dist_; // check distance between dude_obj and party_memberModules\MiscPatches.cpp
jmp fo::funcoffs::obj_dist_;Modules\MiscPatches.cpp
long distance = fo::func::obj_dist(fo::var::obj_dude, relativeObject);Modules\Sound.cpp
DWORD obj_dist_with_tile(GameObject* source, DWORD sourceTile, GameObject* target, DWORD targetTile)jmp fo::funcoffs::obj_dist_with_tile_;Modules\BugFixes.cpp
void object_description()jmp fo::funcoffs::object_description_;Modules\HookScripts\ObjectHs.cpp
void obj_save_dude()call fo::funcoffs::obj_save_dude_; // save current hero state structure fuctionModules\HeroAppearance.cpp
void do_options()call fo::funcoffs::do_options_;Modules\LoadGameHook.cpp
void do_optionsFunc()call fo::funcoffs::do_optionsFunc_;Modules\LoadGameHook.cpp
void do_prefscreen()call fo::funcoffs::do_prefscreen_;Modules\LoadGameHook.cpp
void palette_init()jmp fo::funcoffs::palette_init_;Modules\Graphics.cpp
call fo::funcoffs::palette_init_;Modules\SubModules\DirectDraw.cpp
void palette_fade_to()__asm call fo::funcoffs::palette_fade_to_;Modules\Scripting\Handlers\Worldmap.cpp
void palette_set_to()call fo::funcoffs::palette_set_to_;Modules\Scripting\Handlers\Misc.cpp
void partyMemberRemove()call fo::funcoffs::partyMemberRemove_;Modules\HookScripts\DeathHs.cpp
void partyMemberRecoverLoad()jmp fo::funcoffs::partyMemberRecoverLoad_;Modules\BugFixes.cpp
DWORD isPartyMember(GameObject* obj)call fo::funcoffs::isPartyMember_;Modules\BugFixes.cpp
call fo::funcoffs::isPartyMember_; // and dudeModules\BugFixes.cpp
if (!(sizeLimitMode & 2) || !(fo::func::isPartyMember(critter))) return 0; // if mode 2 is selected, check this party member, otherwise 0Modules\Inventory.cpp
int level = (isPartyMember) // fo::func::isPartyMember(npc)Modules\PartyControl.cpp
call fo::funcoffs::isPartyMember_;Modules\PartyControl.cpp
if (obj->IsCritter() && fo::func::isPartyMember(obj)) {Modules\Scripting\Handlers\Perks.cpp
if (obj->IsCritter() && fo::func::isPartyMember(obj)) {Modules\Scripting\Handlers\Perks.cpp
if (obj->IsCritter() && fo::func::isPartyMember(obj)) {Modules\Scripting\Handlers\Perks.cpp
if (obj->IsCritter() && fo::func::isPartyMember(obj)) {Modules\Scripting\Handlers\Perks.cpp
if (obj->IsCritter() && fo::func::isPartyMember(obj)) {Modules\Scripting\Handlers\Perks.cpp
void partyMemberSaveProtos()jmp fo::funcoffs::partyMemberSaveProtos_;Modules\ScriptExtender.cpp
void partyMemberIncLevels()__asm call fo::funcoffs::partyMemberIncLevels_;Modules\Scripting\Handlers\Objects.cpp
void partyMemberCopyLevelInfo()call fo::funcoffs::partyMemberCopyLevelInfo_;Modules\BugFixes.cpp
DWORD partyMemberGetCurLevel(GameObject* obj)? fo::func::partyMemberGetCurLevel(npc)Modules\PartyControl.cpp
int level = fo::func::partyMemberGetCurLevel(partyMember);Modules\PartyControl.cpp
void loadPCX()call fo::funcoffs::loadPCX_;FalloutEngine\Functions.cpp
BYTE* data = fo::func::loadPCX(file, &w, &h);Modules\Scripting\Handlers\Interface.cpp
DWORD perk_can_add(GameObject* critter, DWORD perkId)if (fo::func::perk_can_add(fo::var::obj_dude, extPerks[i].id)) data[available++] = extPerks[i].id;Modules\Perks.cpp
result = fo::func::perk_can_add(fo::var::obj_dude, perkId);Modules\Scripting\Handlers\Perks.cpp
void perk_add()fo::func::perk_add_effect(critter, queue->perkId);Modules\BugFixes.cpp
fo::func::perk_add_effect(fo::var::obj_dude, perkID);Modules\Perks.cpp
call fo::funcoffs::perk_add_;Modules\Perks.cpp
void perk_add_force()call fo::funcoffs::perk_add_force_;Modules\BugFixes.cpp
void perk_make_list()call fo::funcoffs::perk_make_list_; // return available countModules\Perks.cpp
DWORD perk_level(GameObject* critter, DWORD perkId)return fo::func::perk_level(source, perkID);Game\stats.cpp
call fo::funcoffs::perk_level_;Modules\BugFixes.cpp
call fo::funcoffs::perk_level_;Modules\BugFixes.cpp
call fo::funcoffs::perk_level_;Modules\BugFixes.cpp
call fo::funcoffs::perk_level_; // Get rank of Bonus HtH DamageModules\DamageMod.cpp
call fo::funcoffs::perk_level_; // Get rank of Bonus HtH DamageModules\DamageMod.cpp
call fo::funcoffs::perk_level_; // Return Rank_of_Bonus_HtH_Damage_perkModules\DamageMod.cpp
call fo::funcoffs::perk_level_; // Return Rank_of_Bonus_HtH_Damage_perkModules\DamageMod.cpp
call fo::funcoffs::perk_level_;Modules\DamageMod.cpp
call fo::funcoffs::perk_level_;Modules\DamageMod.cpp
long perkLevel = fo::func::perk_level(fo::var::obj_dude, fo::PERK_quick_pockets);Modules\Inventory.cpp
int bonusmove = fo::func::perk_level(fo::var::obj_dude, fo::PERK_bonus_move);Modules\LoadGameHook.cpp
return fo::func::perk_level(source, perk);Modules\PartyControl.cpp
if (fo::func::perk_level(fo::var::obj_dude, i)) return 0x43438A; // print perksModules\Perks.cpp
jmp fo::funcoffs::perk_level_;Modules\Perks.cpp
jmp fo::funcoffs::perk_level_;Modules\Perks.cpp
call fo::funcoffs::perk_level_;Modules\Perks.cpp
call fo::funcoffs::perk_level_;Modules\Stats.cpp
call fo::funcoffs::perk_level_;Modules\Worldmap.cpp
void perk_name()jmp fo::funcoffs::perk_name_;Modules\Perks.cpp
jmp fo::funcoffs::perk_name_;Modules\Perks.cpp
void perk_description()jmp fo::funcoffs::perk_description_;Modules\Perks.cpp
jmp fo::funcoffs::perk_description_;Modules\Perks.cpp
void perk_skilldex_fid()jmp fo::funcoffs::perk_skilldex_fid_;Modules\Perks.cpp
jmp fo::funcoffs::perk_skilldex_fid_;Modules\Perks.cpp
void perk_add_effect(GameObject* critter, DWORD perkId)fo::func::perk_add_effect(critter, queue->perkId);Modules\BugFixes.cpp
fo::func::perk_add_effect(fo::var::obj_dude, perkID);Modules\Perks.cpp
void EndPipboy()call fo::funcoffs::EndPipboy_;Modules\QuestList.cpp
void pip_print()jmp fo::funcoffs::pip_print_;Modules\QuestList.cpp
void pip_back()call fo::funcoffs::pip_back_;Modules\QuestList.cpp
void PipStatus()call fo::funcoffs::PipStatus_;Modules\BugFixes.cpp
void ListHoloDiskTitles()call fo::funcoffs::ListHoloDiskTitles_;Modules\BugFixes.cpp
void PipAlarm()SafeWrite8(0x499518, CodeType::Ret);Modules\MiscPatches.cpp
void AddHotLines()call fo::funcoffs::AddHotLines_;Modules\BugFixes.cpp
void obj_new_sid()fo::func::obj_new_sid_inst(object, scriptType, scriptIndex);Modules\Scripting\Handlers\Objects.cpp
DWORD obj_new_sid_inst(GameObject* object, DWORD sType, DWORD scriptIndex)fo::func::obj_new_sid_inst(object, scriptType, scriptIndex);Modules\Scripting\Handlers\Objects.cpp
void obj_examine()call fo::funcoffs::obj_examine_;Modules\BugFixes.cpp
void obj_remove_from_inven()jmp fo::funcoffs::obj_remove_from_inven_;Modules\BugFixes.cpp
jmp fo::funcoffs::obj_remove_from_inven_;Modules\BugFixes.cpp
void obj_drop(GameObject* source, GameObject* objectToDrop)__asm call fo::funcoffs::obj_drop_;Modules\HookScripts\InventoryHs.cpp
DWORD obj_destroy(GameObject* object)fo::func::obj_destroy(item);Game\items.cpp
fo::func::obj_destroy(ammo);Modules\AI.cpp
fo::func::obj_destroy(ammo);Modules\AI.cpp
void obj_use_power_on_car()call fo::funcoffs::obj_use_power_on_car_;Modules\BugFixes.cpp
void protinst_use_item()jmp fo::funcoffs::protinst_use_item_;Modules\HookScripts\ObjectHs.cpp
void protinst_use_item_on()jmp fo::funcoffs::protinst_use_item_on_;Modules\HookScripts\ObjectHs.cpp
void obj_is_a_portal()call fo::funcoffs::obj_is_a_portal_;Modules\BugFixes.cpp
call fo::funcoffs::obj_is_a_portal_;Modules\BugFixes.cpp
void obj_lock()ctx.setReturn(fo::func::obj_lock_is_jammed(ctx.arg(0).object()));Modules\Scripting\Handlers\Objects.cpp
bool obj_is_openable(GameObject* object)if (fo::func::obj_is_openable(object)) {FalloutEngine\EngineUtils.cpp
void obj_is_open()if (fo::func::obj_is_openable(object)) {FalloutEngine\EngineUtils.cpp
DWORD obj_lock_is_jammed(GameObject* object)ctx.setReturn(fo::func::obj_lock_is_jammed(ctx.arg(0).object()));Modules\Scripting\Handlers\Objects.cpp
void obj_unjam_lock(GameObject* object)fo::func::obj_unjam_lock(ctx.arg(0).object());Modules\Scripting\Handlers\Objects.cpp
void proto_list_str()call fo::funcoffs::proto_list_str_;Modules\LoadOrder.cpp
call fo::funcoffs::proto_list_str_;Modules\LoadOrder.cpp
char* proto_get_msg_info(DWORD pid, DWORD msgType): fo::func::proto_get_msg_info(object->protoId, 0);Modules\SubModules\ObjectName.cpp
void proto_name()jmp fo::funcoffs::proto_name_;Modules\SubModules\ObjectName.cpp
void proto_dude_update_gender()fo::func::proto_dude_update_gender(); // refresh PC base model artModules\HeroAppearance.cpp
call fo::funcoffs::proto_dude_update_gender_;Modules\HeroAppearance.cpp
fo::func::proto_dude_update_gender();Modules\HeroAppearance.cpp
fo::func::proto_dude_update_gender();Modules\HeroAppearance.cpp
void proto_dude_init()jmp fo::funcoffs::proto_dude_init_;Modules\Premade.cpp
void proto_remove_all()jmp fo::funcoffs::proto_remove_all_;Modules\CritterStats.cpp
DWORD proto_ptr(DWORD pid, Proto** ptrPtr)return (fo::func::proto_ptr(pid, outProto) != -1);FalloutEngine\EngineUtils.cpp
call fo::funcoffs::proto_ptr_;Modules\BugFixes.cpp
call fo::funcoffs::proto_ptr_;Modules\BugFixes.cpp
jmp fo::funcoffs::proto_ptr_;Modules\CritterStats.cpp
long result = fo::func::proto_ptr(pid, (fo::Proto**)&proto);Modules\CritterStats.cpp
if (proto == nullptr) fo::func::proto_ptr(critter->protoId, (fo::Proto**)&proto); // regular prototypeModules\CritterStats.cpp
if (fo::func::proto_ptr(critter->protoId, (fo::Proto**)&proto) != -1) {Modules\CritterStats.cpp
call fo::funcoffs::proto_ptr_;Modules\Inventory.cpp
if (!proto && fo::func::proto_ptr(critter->protoId, (fo::Proto**)&proto) == -1) return;Modules\Stats.cpp
if (fo::func::proto_ptr(critter->protoId, &proto) == -1) return;Modules\Stats.cpp
if (fo::util::CheckProtoID(pid) && fo::func::proto_ptr(pid, &protoPtr) != result) {Modules\Scripting\Handlers\Objects.cpp
DWORD queue_add(DWORD time, GameObject* object, void* data, DWORD qType)jmp fo::funcoffs::queue_add_; // critter_wake_up_ will be called (stand up anim)Modules\BugFixes.cpp
//fo::func::queue_add(10 * (505 - 5 * critter->critter.poison), critter, nullptr, fo::QueueType::poison_event);Modules\CritterPoison.cpp
fo::func::queue_add(10, dude, nullptr, fo::QueueType::poison_event);Modules\CritterPoison.cpp
fo::func::queue_add(member.sneak_queue_time - fo::var::fallout_game_time, npc, 0, fo::QueueType::sneak_event);Modules\PartyControl.cpp
fo::func::queue_add(realDude.sneak_queue_time - fo::var::fallout_game_time, realDude.obj_dude, 0, fo::QueueType::sneak_event);Modules\PartyControl.cpp
jmp fo::funcoffs::queue_add_;Modules\HookScripts\MiscHs.cpp
jmp fo::funcoffs::queue_add_;Modules\HookScripts\MiscHs.cpp
void queue_remove()fo::func::queue_remove_this(critter, fo::QueueType::drug_effect_event);Modules\BugFixes.cpp
fo::func::queue_remove_this(realDude.obj_dude, fo::QueueType::sneak_event);Modules\PartyControl.cpp
fo::func::queue_remove_this(fo::var::obj_dude, fo::QueueType::sneak_event); // remove the eventModules\PartyControl.cpp
void queue_remove_this(GameObject* object, DWORD qType)fo::func::queue_remove_this(critter, fo::QueueType::drug_effect_event);Modules\BugFixes.cpp
call fo::funcoffs::queue_remove_this_; // Remove knockout from queue (if there is one)Modules\BugFixes.cpp
jmp fo::funcoffs::queue_remove_this_;Modules\BugFixes.cpp
fo::func::queue_remove_this(realDude.obj_dude, fo::QueueType::sneak_event);Modules\PartyControl.cpp
call fo::funcoffs::queue_remove_this_;Modules\PartyControl.cpp
fo::func::queue_remove_this(fo::var::obj_dude, fo::QueueType::sneak_event); // remove the eventModules\PartyControl.cpp
void queue_find()return (fo::QueueAddictData*)fo::func::queue_find_first(fo::var::obj_dude, fo::QueueType::addict_event);FalloutEngine\EngineUtils.cpp
fo::QueueAddictData* queue = (fo::QueueAddictData*)fo::func::queue_find_first(critter, fo::QueueType::addict_event);FalloutEngine\EngineUtils.cpp
queue = (fo::QueueAddictData*)fo::func::queue_find_next(critter, fo::QueueType::addict_event);FalloutEngine\EngineUtils.cpp
fo::QueueRadiationData* queue = (fo::QueueRadiationData*)fo::func::queue_find_first(fo::var::obj_dude, fo::radiation_event);FalloutEngine\EngineUtils.cpp
queue = (fo::QueueRadiationData*)fo::func::queue_find_next(fo::var::obj_dude, fo::radiation_event);FalloutEngine\EngineUtils.cpp
fo::QueueRadiationData* queue = (fo::QueueRadiationData*)fo::func::queue_find_first(fo::var::obj_dude, fo::radiation_event);FalloutEngine\EngineUtils.cpp
queue = (fo::QueueRadiationData*)fo::func::queue_find_next(fo::var::obj_dude, fo::radiation_event);FalloutEngine\EngineUtils.cpp
auto queue = (fo::QueueDrugData*)fo::func::queue_find_first(critter, 0);Modules\Drugs.cpp
queue = (fo::QueueDrugData*)fo::func::queue_find_next(critter, 0);Modules\Drugs.cpp
if (fo::func::queue_find_first(partyMember, 2)) {Modules\PartyControl.cpp
void queue_clear()fo::func::queue_clear_type(fo::QueueType::poison_event, nullptr);Modules\CritterPoison.cpp
void queue_clear_type(DWORD qType, void* func)jmp fo::funcoffs::queue_clear_type_;Modules\BugFixes.cpp
fo::func::queue_clear_type(fo::QueueType::poison_event, nullptr);Modules\CritterPoison.cpp
call fo::funcoffs::queue_clear_type_;Modules\ScriptExtender.cpp
call fo::funcoffs::queue_clear_type_;Modules\ScriptExtender.cpp
void queue_next_time()call fo::funcoffs::queue_next_time_;Modules\ScriptExtender.cpp
void queue_explode_exit()mov edx, fo::funcoffs::queue_explode_exit_; // funcModules\ScriptExtender.cpp
mov edx, fo::funcoffs::queue_explode_exit_;Modules\ScriptExtender.cpp
void* queue_find_first(GameObject* object, DWORD qType)return (fo::QueueAddictData*)fo::func::queue_find_first(fo::var::obj_dude, fo::QueueType::addict_event);FalloutEngine\EngineUtils.cpp
fo::QueueAddictData* queue = (fo::QueueAddictData*)fo::func::queue_find_first(critter, fo::QueueType::addict_event);FalloutEngine\EngineUtils.cpp
fo::QueueRadiationData* queue = (fo::QueueRadiationData*)fo::func::queue_find_first(fo::var::obj_dude, fo::radiation_event);FalloutEngine\EngineUtils.cpp
fo::QueueRadiationData* queue = (fo::QueueRadiationData*)fo::func::queue_find_first(fo::var::obj_dude, fo::radiation_event);FalloutEngine\EngineUtils.cpp
auto queue = (fo::QueueDrugData*)fo::func::queue_find_first(critter, 0);Modules\Drugs.cpp
if (fo::func::queue_find_first(partyMember, 2)) {Modules\PartyControl.cpp
void* queue_find_next(GameObject* object, DWORD qType)queue = (fo::QueueAddictData*)fo::func::queue_find_next(critter, fo::QueueType::addict_event);FalloutEngine\EngineUtils.cpp
queue = (fo::QueueRadiationData*)fo::func::queue_find_next(fo::var::obj_dude, fo::radiation_event);FalloutEngine\EngineUtils.cpp
queue = (fo::QueueRadiationData*)fo::func::queue_find_next(fo::var::obj_dude, fo::radiation_event);FalloutEngine\EngineUtils.cpp
queue = (fo::QueueDrugData*)fo::func::queue_find_next(critter, 0);Modules\Drugs.cpp
void roll_check_critical()call fo::funcoffs::roll_check_critical_;Modules\HookScripts\MiscHs.cpp
DWORD roll_random(DWORD minValue, DWORD maxValue)if (!drugWasUsed && chance > 0 && fo::func::roll_random(0, 100) < chance) {Game\combatAI.cpp
long dice = fo::func::roll_random(1, 10);Modules\AI.cpp
call fo::funcoffs::roll_random_;Modules\BugFixes.cpp
__asm jmp fo::funcoffs::roll_random_;Modules\HookScripts\CombatHs.cpp
void game_time_date()call fo::funcoffs::game_time_date_;Modules\Scripting\Handlers\Misc.cpp
void set_game_time()jmp fo::funcoffs::set_game_time_;Modules\HookScripts\MiscHs.cpp
void inc_game_time()jmp fo::funcoffs::inc_game_time_;Modules\Worldmap.cpp
DWORD new_obj_id()obj->id = fo::func::new_obj_id();Modules\Objects.cpp
jmp fo::funcoffs::new_obj_id_;Modules\Objects.cpp
id = fo::func::new_obj_id();Modules\Scripting\Handlers\Objects.cpp
void scr_find_obj()self_obj = fo::func::scr_find_obj_from_program(scriptPtr->program);Modules\Scripting\Handlers\Arrays.cpp
ctx.setReturn(fo::func::scr_find_obj_from_program(scriptPtr->program));Modules\Scripting\Handlers\Objects.cpp
DWORD scr_find_sid_from_program(Program* program)static const DWORD scr_find_sid_from_program_back = fo::funcoffs::scr_find_sid_from_program_ + 5;Modules\ScriptExtender.cpp
MakeJump(0x4A390C, scr_find_sid_from_program_hack);Modules\ScriptExtender.cpp
long sid = fo::func::scr_find_sid_from_program(ctx.program());Modules\Scripting\Handlers\Misc.cpp
GameObject* scr_find_obj_from_program(Program* program)self_obj = fo::func::scr_find_obj_from_program(scriptPtr->program);Modules\Scripting\Handlers\Arrays.cpp
ctx.setReturn(fo::func::scr_find_obj_from_program(scriptPtr->program));Modules\Scripting\Handlers\Objects.cpp
void scr_set_ext_param()call fo::funcoffs::scr_set_ext_param_;Modules\ScriptExtender.cpp
call fo::funcoffs::scr_set_ext_param_;Modules\ScriptExtender.cpp
Program* loadProgram(char* fileName): fo::func::loadProgram(fileName);Modules\ScriptExtender.cpp
scriptPtr->program = fo::func::loadProgram(fo::var::scriptListInfo[scriptPtr->scriptIdx & 0xFFFFFF].fileName);Modules\ScriptExtender.cpp
void exec_script_proc()call fo::funcoffs::exec_script_proc_;Modules\BugFixes.cpp
jmp fo::funcoffs::exec_script_proc_;Modules\ScriptExtender.cpp
jmp fo::funcoffs::exec_script_proc_;Modules\ScriptExtender.cpp
__asm call fo::funcoffs::exec_script_proc_ \Modules\Scripting\Handlers\Objects.cpp
void scr_build_lookup_table(ScriptInstance* script)fo::func::scr_build_lookup_table(scriptPtr);Modules\ScriptExtender.cpp
void scr_clear_dude_script()call fo::funcoffs::scr_clear_dude_script_;Modules\BugFixes.cpp
void scr_write_ScriptNode()call fo::funcoffs::scr_write_ScriptNode_;Modules\BugFixes.cpp
DWORD scr_ptr(DWORD scriptId, ScriptInstance** scriptPtr)fo::func::scr_ptr(sid, &script);FalloutEngine\EngineUtils.cpp
if (fo::func::scr_ptr(obj->scriptId, &script) != -1) {Modules\Objects.cpp
static const DWORD scr_ptr_back = fo::funcoffs::scr_ptr_ + 5;Modules\ScriptExtender.cpp
if (fo::func::scr_ptr(sid, &scriptPtr) == -1) return -1;Modules\ScriptExtender.cpp
MakeJump(0x4A5E34, scr_ptr_hack);Modules\ScriptExtender.cpp
if (fo::func::scr_new(&scriptId, fo::Scripts::ScriptTypes::SCRIPT_SPATIAL) == -1 || fo::func::scr_ptr(scriptId, &scriptPtr) == -1) return;Modules\Scripting\Handlers\Objects.cpp
if (fo::func::scr_ptr(spatialObj->scriptId, &script) != -1) {Modules\Scripting\Handlers\Objects.cpp
DWORD scr_new(DWORD* scriptID, DWORD sType)if (fo::func::scr_new(&scriptId, fo::Scripts::ScriptTypes::SCRIPT_SPATIAL) == -1 || fo::func::scr_ptr(scriptId, &scriptPtr) == -1) return;Modules\Scripting\Handlers\Objects.cpp
DWORD scr_remove(DWORD scriptID)call fo::funcoffs::scr_remove_;Modules\BugFixes.cpp
fo::func::scr_remove(object->scriptId);Modules\Scripting\Handlers\Objects.cpp
fo::func::scr_remove(object->scriptId);Modules\Scripting\Handlers\Objects.cpp
ScriptInstance* scr_find_first_at(DWORD elevation)fo::ScriptInstance* scriptPtr = fo::func::scr_find_first_at(elev);Modules\Scripting\Handlers\Arrays.cpp
ScriptInstance* scr_find_next_at()scriptPtr = fo::func::scr_find_next_at();Modules\Scripting\Handlers\Arrays.cpp
void scr_exec_map_exit_scripts()call fo::funcoffs::scr_exec_map_exit_scripts_;Modules\ScriptExtender.cpp
DWORD scr_get_local_var(DWORD sid, DWORD varId, DWORD* value)fo::func::scr_get_local_var(id, i, &varVal);Modules\DebugEditor.cpp
DWORD scr_set_local_var(DWORD sid, DWORD varId, DWORD value)fo::func::scr_set_local_var(id, i, values[i]);Modules\DebugEditor.cpp
void skill_set_tags(DWORD* tags, DWORD num)fo::func::skill_set_tags(tags, num);FalloutEngine\EngineUtils.cpp
call fo::funcoffs::skill_set_tags_;Modules\BugFixes.cpp
void skill_get_tags(DWORD* tags, DWORD num)fo::func::skill_get_tags(result, num);FalloutEngine\EngineUtils.cpp
DWORD skill_is_tagged(DWORD skill)if (fo::func::skill_is_tagged(skill)) mod /= 2;Modules\Perks.cpp
if (fo::func::skill_is_tagged(skill)) rawPoints *= 2;Modules\Skills.cpp
DWORD skill_level(GameObject* critter, DWORD statID)call fo::funcoffs::skill_level_;Modules\BugFixes.cpp
call fo::funcoffs::skill_level_;Modules\BugFixes.cpp
unarmed.GetDudeStats(fo::func::skill_level(fo::var::obj_dude, fo::Skill::SKILL_UNARMED_COMBAT));Modules\Unarmed.cpp
//unarmed.GetDudeStats(fo::func::skill_level(fo::var::obj_dude, fo::Skill::SKILL_UNARMED_COMBAT));Modules\Unarmed.cpp
void skill_points()call fo::funcoffs::skill_points_;Modules\Skills.cpp
call fo::funcoffs::skill_points_;Modules\Skills.cpp
call fo::funcoffs::skill_points_;Modules\Skills.cpp
void skill_inc_point()fo::func::skill_inc_point_force(critter, skill);Modules\Perks.cpp
DWORD skill_inc_point_force(GameObject* critter, DWORD skill)fo::func::skill_inc_point_force(critter, skill);Modules\Perks.cpp
void skill_dec_point()fo::func::skill_dec_point_force(critter, skill);Modules\Perks.cpp
DWORD skill_dec_point_force(GameObject* critter, DWORD skill)fo::func::skill_dec_point_force(critter, skill);Modules\Perks.cpp
void skill_use()jmp fo::funcoffs::skill_use_;Modules\HookScripts\MiscHs.cpp
void skill_check_stealing()jmp fo::funcoffs::skill_check_stealing_;Modules\HookScripts\MiscHs.cpp
void skilldex_select()call fo::funcoffs::skilldex_select_;Modules\LoadGameHook.cpp
void soundPlay()jmp fo::funcoffs::soundPlay_;Modules\Sound.cpp
void soundDelete()jmp fo::funcoffs::soundDelete_;Modules\Sound.cpp
void soundPlaying()jmp fo::funcoffs::soundPlaying_;Modules\Sound.cpp
void soundVolume()jmp fo::funcoffs::soundVolume_; // set sfx volumeModules\Sound.cpp
void soundSetCallback()call fo::funcoffs::soundSetCallback_;Modules\Sound.cpp
void soundSetFileIO()call fo::funcoffs::soundSetFileIO_;Modules\Sound.cpp
void soundGetPosition()jmp fo::funcoffs::soundGetPosition_;Modules\Sound.cpp
DWORD stat_level(GameObject* critter, DWORD statId)return (fo::func::stat_level(fo::var::obj_dude, fo::Stat::STAT_gender) == fo::Gender::GENDER_FEMALE);FalloutEngine\EngineUtils.cpp
long minHP = (hpPercent * fo::func::stat_level(source, fo::Stat::STAT_max_hit_points)) / 100;Game\combatAI.cpp
while (fo::func::stat_level(source, fo::Stat::STAT_current_hp) < minHP && source->critter.movePoints >= aiUseItemAPCost) {Game\combatAI.cpp
long maxHP = fo::func::stat_level(source, fo::Stat::STAT_max_hit_points);Game\combatAI.cpp
DWORD armorFid = fo::func::stat_level(fo::var::inven_dude, fo::STAT_gender) == fo::GENDER_FEMALEGame\inventory.cpp
long stRange = fo::func::stat_level(source, fo::Stat::STAT_st);Game\items.cpp
st = fo::func::stat_level(fo::var::obj_dude, fo::STAT_st);Game\stats.cpp
call fo::funcoffs::stat_level_; // current hpModules\AI.cpp
call fo::funcoffs::stat_level_;Modules\AI.cpp
return (fo::func::stat_level(attacker, fo::STAT_iq) >= dice); // true - is friendlyModules\AI.cpp
call fo::funcoffs::stat_level_; // PerceptionModules\BugFixes.cpp
jmp fo::funcoffs::stat_level_;Modules\BugFixes.cpp
call fo::funcoffs::stat_level_;Modules\BugFixes.cpp
call fo::funcoffs::stat_level_;Modules\BugFixes.cpp
call fo::funcoffs::stat_level_;Modules\BugFixes.cpp
call fo::funcoffs::stat_level_; // get STModules\BugFixes.cpp
amount -= fo::func::stat_level(critter, fo::STAT_poison_resist) * amount / 100;Modules\CritterPoison.cpp
call fo::funcoffs::stat_level_; // Get Melee DamageModules\DamageMod.cpp
call fo::funcoffs::stat_level_; // Get Melee DamageModules\DamageMod.cpp
call fo::funcoffs::stat_level_; // Get Total_Melee_DamageModules\DamageMod.cpp
call fo::funcoffs::stat_level_; // get STAT_melee_dmgModules\DamageMod.cpp
long newGender = fo::func::stat_level(fo::var::obj_dude, fo::STAT_gender);Modules\HeroAppearance.cpp
call fo::funcoffs::stat_level_; // get PC stat current genderModules\HeroAppearance.cpp
long max_hp = fo::func::stat_level(target, fo::STAT_max_hit_points);Modules\Inventory.cpp
int ap = fo::func::stat_level(fo::var::obj_dude, fo::STAT_max_move_points);Modules\LoadGameHook.cpp
return (fo::func::obj_dist(source, target) <= (fo::func::stat_level(source, fo::STAT_pe) * 3));Modules\MiscPatches.cpp
call fo::funcoffs::stat_level_;Modules\MiscPatches.cpp
int ac = fo::func::stat_level(partyMember, fo::STAT_ac);Modules\PartyControl.cpp
call fo::funcoffs::stat_level_;Modules\Perks.cpp
result += fo::func::stat_level(critter, i) * multipliers[skill * 7 + i];Modules\Skills.cpp
levelStats[stat] = fo::func::stat_level(critter, stat);Modules\Stats.cpp
auto getStatFunc = (derivedHPwBonus) ? fo::func::stat_level : fo::func::stat_get_base;Modules\Stats.cpp
psStat[stat] = fo::func::stat_level(fo::var::obj_dude, stat);Modules\Unarmed.cpp
maxOut = unarmed.Hit(hit).maxDamage + fo::func::stat_level(source, fo::Stat::STAT_melee_dmg);Modules\Unarmed.cpp
DWORD stat_get_base(GameObject* critter, DWORD statID)return fo::func::stat_get_base_direct(fo::var::obj_dude, statID);Game\stats.cpp
call fo::funcoffs::stat_get_base_; // Get Melee Damage w/o bonusesModules\DamageMod.cpp
call fo::funcoffs::stat_get_base_; // Get Melee Damage w/o bonusesModules\DamageMod.cpp
if (!derivedHPwBonus) baseStats[stat] = fo::func::stat_get_base(critter, stat);Modules\Stats.cpp
auto getStatFunc = (derivedHPwBonus) ? fo::func::stat_level : fo::func::stat_get_base;Modules\Stats.cpp
DWORD stat_get_base_direct(GameObject* critter, DWORD statID)return fo::func::stat_get_base_direct(fo::var::obj_dude, statID);Game\stats.cpp
DWORD stat_get_bonus(GameObject* critter, DWORD statID)int value = fo::func::stat_get_bonus(critter, stat);Modules\Perks.cpp
void inc_stat()call fo::funcoffs::inc_stat_;Modules\BugFixes.cpp
DWORD stat_set_bonus(GameObject* critter, DWORD statID, DWORD amount)fo::func::stat_set_bonus(critter, stat, value + mod);Modules\Perks.cpp
void stat_set_defaults()call fo::funcoffs::stat_set_defaults_;Modules\BugFixes.cpp
void stat_recalc_derived(){0x4AF6FC, 5},CheckAddress.cpp
MakeJump(0x4AF6FC, stat_recalc_derived_hack); // overrides functionModules\Stats.cpp
call fo::funcoffs::stat_recalc_derived_;Modules\Scripting\Handlers\Interface.cpp
void stat_pc_get()call fo::funcoffs::stat_pc_get_;Modules\Scripting\Handlers\Perks.cpp
void stat_pc_set()call fo::funcoffs::stat_pc_set_;Modules\Scripting\Handlers\Stats.cpp
void stat_pc_add_experience(DWORD amount)call fo::funcoffs::stat_pc_add_experience_;Modules\BugFixes.cpp
call fo::funcoffs::stat_pc_add_experience_;Modules\BugFixes.cpp
call fo::funcoffs::stat_pc_add_experience_;Modules\BugFixes.cpp
fo::func::stat_pc_add_experience(delayedExperience);Modules\PartyControl.cpp
jmp fo::funcoffs::stat_pc_add_experience_;Modules\PartyControl.cpp
void strParseStrFromList()call fo::funcoffs::strParseStrFromList_;Modules\Worldmap.cpp
DWORD text_object_create(GameObject* object, char* text, DWORD font, DWORD colorText, DWORD colorOutline, RECT* rect)if (!fo::func::text_object_create(object, text, font, colorText, colorOutline, &rect)) {FalloutEngine\EngineUtils.cpp
jmp fo::funcoffs::text_object_create_;Modules\Sound.cpp
void tile_refresh_rect(RECT* boundRect, DWORD elevation)fo::func::tile_refresh_rect(&rect, object->elevation);FalloutEngine\EngineUtils.cpp
fo::func::tile_refresh_rect(&rect, obj->elevation);FalloutEngine\EngineUtils.cpp
fo::func::tile_refresh_rect(&rect, fo::var::map_elevation);Modules\MiscPatches.cpp
fo::func::tile_refresh_rect(&rect, fo::var::map_elevation);Modules\PartyControl.cpp
fo::func::tile_refresh_rect(&rect, fo::var::map_elevation);Modules\PartyControl.cpp
void tile_refresh_display()fo::func::tile_refresh_display();HRP\ViewMap\ViewMap.cpp
// fo::func::tile_refresh_display();Modules\DebugEditor.cpp
fo::func::tile_refresh_display();Modules\Scripting\Handlers\Interface.cpp
void tile_set_center()sf::MakeJump(fo::funcoffs::tile_set_center_, tile_set_center_hack_replacement); // 0x4B12F8HRP\ViewMap\ViewMap.cpp
call fo::funcoffs::tile_set_center_;HRP\ViewMap\ViewMap.cpp
jmp fo::funcoffs::tile_set_center_;HRP\ViewMap\ViewMap.cpp
void refresh_mapper()// fo::var::setInt(FO_VAR_tile_refresh) = fo::funcoffs::refresh_mapper_;Modules\DebugEditor.cpp
DWORD tile_coord(DWORD tile, DWORD* outX, DWORD* outY)fo::func::tile_coord(sourceTile, &source_X, &source_Y);Game\tilemap.cpp
fo::func::tile_coord(targetTile, &target_X, &target_Y);Game\tilemap.cpp
fo::func::tile_coord(targetTile, &targetX, &targetY);Game\tilemap.cpp
fo::func::tile_coord(tile, &x, &y);Game\tilemap.cpp
fo::func::tile_coord(tObj->tile_num, &tObj->rect.x, &tObj->rect.y);Modules\MiscPatches.cpp
call fo::funcoffs::tile_coord_;Modules\Scripting\Handlers\Misc.cpp
void tile_num()long chkTile = fo::func::tile_num_in_direction(dstTile, rotation, 1);FalloutEngine\EngineUtils.cpp
long chkTile = fo::func::tile_num_in_direction(dstTile, dir, 1);FalloutEngine\EngineUtils.cpp
chkTile = fo::func::tile_num_in_direction(dstTile, rotation, 1);FalloutEngine\EngineUtils.cpp
chkTile = fo::func::tile_num_in_direction(dstTile, rotation, 1);FalloutEngine\EngineUtils.cpp
long _tile = fo::func::tile_num_in_direction(tile, direction, 1);Game\tilemap.cpp
long tile = fo::func::tile_num(target_X, target_Y);Game\tilemap.cpp
long tile = fo::func::tile_num(target_X, target_Y);Game\tilemap.cpp
long tile = fo::func::tile_num_in_direction(childData.tile, rotation, 1);Game\tilemap.cpp
objTile = fo::func::tile_num_in_direction(objTile, dir, 1);Game\AI\AIHelpers.cpp
checkTile = fo::func::tile_num_in_direction(checkTile, rotation, dist);Modules\BugFixes.cpp
long tilePlace = fo::func::tile_num_in_direction(dudeTile, dudeRot, distance);Modules\BugFixes.cpp
if (fo::func::obj_blocking_at(source, fo::func::tile_num_in_direction(tilePlace, dir, 1), elevation)) {Modules\BugFixes.cpp
call fo::funcoffs::tile_num_; // ebx - unusedModules\Scripting\Handlers\Misc.cpp
ctx.setReturn(fo::func::tile_num(ctx.arg(0).rawValue(), ctx.arg(1).rawValue()));Modules\Scripting\Handlers\Worldmap.cpp
DWORD tile_dist(DWORD scrTile, DWORD dstTile)if (fo::func::tile_dist(sourceTile, obj->tile) <= (radius + multiHex)) {FalloutEngine\EngineUtils.cpp
if (fo::func::tile_dist(source->tile, dstTile) > 1) {FalloutEngine\EngineUtils.cpp
long currentRange = fo::func::tile_dist(sourceTile, targetTile);Game\tilemap.cpp
long dist = fo::func::tile_dist(targetTile, tile);Game\tilemap.cpp
long dist = fo::func::tile_dist(targetTile, tile);Game\tilemap.cpp
DWORD tile_num_in_direction(DWORD tile, DWORD rotation, DWORD distance)long chkTile = fo::func::tile_num_in_direction(dstTile, rotation, 1);FalloutEngine\EngineUtils.cpp
long chkTile = fo::func::tile_num_in_direction(dstTile, dir, 1);FalloutEngine\EngineUtils.cpp
chkTile = fo::func::tile_num_in_direction(dstTile, rotation, 1);FalloutEngine\EngineUtils.cpp
chkTile = fo::func::tile_num_in_direction(dstTile, rotation, 1);FalloutEngine\EngineUtils.cpp
long _tile = fo::func::tile_num_in_direction(tile, direction, 1);Game\tilemap.cpp
long tile = fo::func::tile_num_in_direction(childData.tile, rotation, 1);Game\tilemap.cpp
objTile = fo::func::tile_num_in_direction(objTile, dir, 1);Game\AI\AIHelpers.cpp
jmp fo::funcoffs::tile_num_in_direction_;Modules\BugFixes.cpp
checkTile = fo::func::tile_num_in_direction(checkTile, rotation, dist);Modules\BugFixes.cpp
long tilePlace = fo::func::tile_num_in_direction(dudeTile, dudeRot, distance);Modules\BugFixes.cpp
if (fo::func::obj_blocking_at(source, fo::func::tile_num_in_direction(tilePlace, dir, 1), elevation)) {Modules\BugFixes.cpp
DWORD tile_dir(DWORD scrTile, DWORD dstTile)long dir = fo::func::tile_dir(source->tile, dstTile);FalloutEngine\EngineUtils.cpp
long dir = fo::func::tile_dir(objTile, targetTile);Game\AI\AIHelpers.cpp
long dir = source->rotation - fo::func::tile_dir(source->tile, target->tile);Modules\MiscPatches.cpp
long direction = fo::func::tile_dir(fo::var::obj_dude->tile, relativeObject->tile);Modules\Sound.cpp
void tile_num_beyond()sf::MakeJump(fo::funcoffs::tile_num_beyond_ + 1, tile_num_beyond_replacement); // 0x4B1B84Game\tilemap.cpp
DWORD tile_on_edge(DWORD tile)if ((dist + currentRange) >= maxRange || fo::func::tile_on_edge(tile)) return tile;Game\tilemap.cpp
if ((dist + currentRange) >= maxRange || fo::func::tile_on_edge(tile)) return tile;Game\tilemap.cpp
DWORD square_coord(DWORD square, DWORD* outX, DWORD* outY)fo::func::square_coord(X + sY, &s_x, &s_y);HRP\ViewMap\ViewMap.cpp
void square_num()call fo::funcoffs::square_num_;Modules\Scripting\Handlers\Misc.cpp
void square_xy()call fo::funcoffs::square_xy_;FalloutEngine\Functions.cpp
fo::func::square_xy(rect->x, rect->offy, &x0, &y0);HRP\ViewMap\ViewMap.cpp
fo::func::square_xy(rect->x, rect->y, &x1, &y1);HRP\ViewMap\ViewMap.cpp
fo::func::square_xy(rect->offx, rect->y, &x2, &y2);HRP\ViewMap\ViewMap.cpp
fo::func::square_xy(rect->offx, rect->offy, &x3, &y3);HRP\ViewMap\ViewMap.cpp
void grid_toggle()// __asm call fo::funcoffs::grid_toggle_;Modules\DebugEditor.cpp
void floor_draw()call fo::funcoffs::floor_draw_;HRP\ViewMap\ViewMap.cpp
void tile_scroll_to()sf::MakeJump(fo::funcoffs::tile_scroll_to_, tile_scroll_to_hack_replacement); // 0x4B3924HRP\ViewMap\ViewMap.cpp
jmp fo::funcoffs::tile_scroll_to_;Modules\TalkingHeads.cpp
void trait_init()call fo::funcoffs::trait_init_;Modules\Perks.cpp
DWORD trait_level(DWORD traitID)return fo::func::trait_level(trait);Modules\PartyControl.cpp
void trait_adjust_stat()sf::MakeJump(fo::funcoffs::trait_adjust_stat_, trait_adjust_stat_replacement); // 0x4B3C7CGame\stats.cpp
void trait_adjust_skill()sf::MakeJump(fo::funcoffs::trait_adjust_skill_, trait_adjust_skill_replacement); // 0x4B40FCGame\skills.cpp
void windowGetTextColor()__asm call fo::funcoffs::windowGetTextColor_; // set from SetTextColorModules\Scripting\Handlers\Interface.cpp
void windowCheckRegion()jmp fo::funcoffs::windowCheckRegion_;Modules\BugFixes.cpp
void windowHide()__asm call fo::funcoffs::windowHide_;Modules\Scripting\Handlers\Interface.cpp
void windowShow()__asm call fo::funcoffs::windowShow_;Modules\Scripting\Handlers\Interface.cpp
DWORD windowWidth()long w_width = fo::func::windowWidth();Modules\Scripting\Handlers\Interface.cpp
DWORD createWindow(char* winName, DWORD x, DWORD y, DWORD width, DWORD height, DWORD color, DWORD flags)if (fo::func::createWindow(ctx.arg(0).strValue(),Modules\Scripting\Handlers\Interface.cpp
DWORD selectWindowID(DWORD sWinID)if (!fo::func::selectWindowID(ctx.program()->currentScriptWin) || fo::var::getInt(FO_VAR_currentWindow) == -1) {Modules\Scripting\Handlers\Interface.cpp
long result = fo::func::selectWindowID(ctx.program()->currentScriptWin); // TODO: examine the issue of restoring program->currentScriptWin of the current window in op_pop_flags_Modules\Scripting\Handlers\Interface.cpp
void selectWindow()if (!fo::func::selectWindowID(ctx.program()->currentScriptWin) || fo::var::getInt(FO_VAR_currentWindow) == -1) {Modules\Scripting\Handlers\Interface.cpp
long result = fo::func::selectWindowID(ctx.program()->currentScriptWin); // TODO: examine the issue of restoring program->currentScriptWin of the current window in op_pop_flags_Modules\Scripting\Handlers\Interface.cpp
void windowGetBuffer()call fo::funcoffs::windowGetBuffer_;FalloutEngine\Functions.cpp
DWORD windowWrapLineWithSpacing(DWORD winID, char* text, DWORD width, DWORD height, DWORD x, DWORD y, DWORD color, DWORD alignment, DWORD lineSpacing)fo::func::windowWrapLineWithSpacing(win->wID, text, width, maxHeight, x, y, 0x201000F, 0, 0);Modules\Scripting\Handlers\Interface.cpp
ctx.setReturn(fo::func::windowWrapLineWithSpacing(win->wID, text, width, maxHeight, x, y, color, 0, 0)); // returns count of lines printedModules\Scripting\Handlers\Interface.cpp
void windowWrapLine()fo::func::windowWrapLineWithSpacing(win->wID, text, width, maxHeight, x, y, 0x201000F, 0, 0);Modules\Scripting\Handlers\Interface.cpp
ctx.setReturn(fo::func::windowWrapLineWithSpacing(win->wID, text, width, maxHeight, x, y, color, 0, 0)); // returns count of lines printedModules\Scripting\Handlers\Interface.cpp
void displayInWindow()call fo::funcoffs::displayInWindow_; // *data<eax>, width<edx>, height<ebx>, where<ecx>FalloutEngine\Functions.cpp
fo::func::displayInWindow(framePtr->width, framePtr->width, framePtr->height, pixelData); // scaled to window size (w/o transparent)Modules\Scripting\Handlers\Interface.cpp
void windowDisplay()fo::func::windowDisplayBuf(x + frmPtr->xshift[direction], framePtr->width, y + frmPtr->yshift[direction], framePtr->height, pixelData, ctx.arg(4).rawValue());Modules\Scripting\Handlers\Interface.cpp
void windowDisplayBuf()cmovnz ebx, fo::funcoffs::windowDisplayBuf_;FalloutEngine\Functions.cpp
fo::func::windowDisplayBuf(x + frmPtr->xshift[direction], framePtr->width, y + frmPtr->yshift[direction], framePtr->height, pixelData, ctx.arg(4).rawValue());Modules\Scripting\Handlers\Interface.cpp
void windowDisplayTransBuf()mov ebx, fo::funcoffs::windowDisplayTransBuf_;FalloutEngine\Functions.cpp
DWORD _word_wrap(char* text, unsigned char maxWidth, DWORD* buf, unsigned char* count)call fo::funcoffs::_word_wrap_;Modules\QuestList.cpp
fo::func::_word_wrap(text, width, buf, count);Modules\QuestList.cpp
if (fo::func::_word_wrap(text, width, buf, count) == -1) return ExitCode::Error; // error wrapModules\QuestList.cpp
void wmWorldMapLoadTempData()call fo::funcoffs::wmWorldMapLoadTempData_;Modules\Worldmap.cpp
void wmMapMatchNameToIdx()call fo::funcoffs::wmMapMatchNameToIdx_;Modules\MiscPatches.cpp
void wmMapCanRestHere()jmp fo::funcoffs::wmMapCanRestHere_;Modules\Worldmap.cpp
void wmFindCurSubTileFromPos()call fo::funcoffs::wmFindCurSubTileFromPos_;FalloutEngine\EngineUtils.cpp
call fo::funcoffs::wmFindCurSubTileFromPos_;Modules\BugFixes.cpp
DWORD wmEvalTileNumForPlacement(DWORD tile)if (fo::func::wmEvalTileNumForPlacement(tilePlace)) {Modules\BugFixes.cpp
void wmPartyInitWalking()jmp fo::funcoffs::wmPartyInitWalking_;Modules\BugFixes.cpp
jmp fo::funcoffs::wmPartyInitWalking_;Modules\Interface.cpp
void wmPartyWalkingStep()jmp fo::funcoffs::wmPartyWalkingStep_;Modules\Worldmap.cpp
fo::func::wmPartyWalkingStep();Modules\HookScripts\MiscHs.cpp
void wmInterfaceScrollTabsStart()jmp fo::funcoffs::wmInterfaceScrollTabsStart_;Modules\Interface.cpp
void wmInterfaceInit()call fo::funcoffs::wmInterfaceInit_;Modules\LoadGameHook.cpp
void wmMouseBkProc()mov eax, fo::funcoffs::wmMouseBkProc_;HRP\MoviesScreen.cpp
mov eax, fo::funcoffs::wmMouseBkProc_;HRP\MoviesScreen.cpp
void wmMarkSubTileOffsetVisitedFunc()call fo::funcoffs::wmMarkSubTileOffsetVisitedFunc_;Modules\BugFixes.cpp
void wmMarkSubTileRadiusVisited()call fo::funcoffs::wmMarkSubTileRadiusVisited_;Modules\BugFixes.cpp
void wmSubTileMarkRadiusVisited()call fo::funcoffs::wmSubTileMarkRadiusVisited_;Modules\BugFixes.cpp
void wmInterfaceRefresh()call fo::funcoffs::wmInterfaceRefresh_;Modules\Worldmap.cpp
jmp fo::funcoffs::wmInterfaceRefresh_;Modules\HookScripts\MiscHs.cpp
jmp fo::funcoffs::wmInterfaceRefresh_;Modules\HookScripts\MiscHs.cpp
jmp fo::funcoffs::wmInterfaceRefresh_;Modules\HookScripts\MiscHs.cpp
__asm call fo::funcoffs::wmInterfaceRefresh_;Modules\Scripting\Handlers\Worldmap.cpp
void wmInterfaceDrawSubTileRectFogged(unsigned char* surface, DWORD width, DWORD height, DWORD surfaceWidth)fo::func::wmInterfaceDrawSubTileRectFogged(surf, width, height, surfWidth);FalloutEngine\EngineUtils.cpp
void wmDrawCursorStopped()__asm jmp fo::funcoffs::wmDrawCursorStopped_;Modules\Interface.cpp
void wmCarUseGas(DWORD gasAmount)fo::func::wmCarUseGas(100);Modules\HookScripts\MiscHs.cpp
void wmRefreshInterfaceOverlay(DWORD isRedraw)if (backgroundCopy) fo::func::wmRefreshInterfaceOverlay(0); // prevent printing text over the interfaceModules\Interface.cpp
void wmMapMusicStart()jmp fo::funcoffs::wmMapMusicStart_;Modules\MiscPatches.cpp
void wmMatchAreaContainingMapIdx()call fo::funcoffs::wmMatchAreaContainingMapIdx_;Modules\MiscPatches.cpp
call fo::funcoffs::wmMatchAreaContainingMapIdx_;Modules\Worldmap.cpp
call fo::funcoffs::wmMatchAreaContainingMapIdx_;Modules\HookScripts\MiscHs.cpp
call fo::funcoffs::wmMatchAreaContainingMapIdx_;Modules\Scripting\Handlers\Worldmap.cpp
void wmTeleportToArea()call fo::funcoffs::wmTeleportToArea_;Modules\Worldmap.cpp
void mem_malloc()jmp fo::funcoffs::mem_malloc_;HRP\InterfaceBar.cpp
call fo::funcoffs::mem_malloc_;Modules\BarBoxes.cpp
call fo::funcoffs::mem_malloc_; // malloc the necessary memoryModules\BugFixes.cpp
void* mem_realloc(void* lpmem, DWORD msize)tiles->names = (char*)fo::func::mem_realloc(tiles->names, listpos * 13);Modules\Tiles.cpp
void mem_free(void* mem)jmp fo::funcoffs::mem_free_;Modules\BugFixes.cpp
fo::func::mem_free(fo::var::text_object_list[i]->buffer);Modules\MiscPatches.cpp
fo::func::mem_free(fo::var::text_object_list[i]);Modules\MiscPatches.cpp
fo::func::mem_free(tObj->buffer);Modules\MiscPatches.cpp
fo::func::mem_free(tObj);Modules\MiscPatches.cpp
void my_free()__asm call fo::funcoffs::my_free_;Modules\Scripting\Handlers\Interface.cpp
void db_init()if (!it->empty()) fo::func::db_init(it->c_str(), 0);Modules\LoadOrder.cpp
if (!it->empty()) fo::func::db_init(it->c_str(), 0);Modules\LoadOrder.cpp
void db_read_to_buf()call fo::funcoffs::db_read_to_buf_;Modules\FileSystem.cpp
DWORD db_fclose(DbFile* file)fo::func::db_fclose(frmStream);FalloutEngine\EngineUtils.cpp
fo::func::db_fclose(frmStream);FalloutEngine\EngineUtils.cpp
fo::func::db_fclose(frmStream);FalloutEngine\EngineUtils.cpp
jmp fo::funcoffs::db_fclose_;HRP\SplashScreen.cpp
fo::func::db_fclose(file);HRP\ViewMap\EdgeBorder.cpp
fo::func::db_fclose(file);HRP\ViewMap\EdgeBorder.cpp
if (file) fo::func::db_fclose(file);Modules\ExtraSaveSlots.cpp
fo::func::db_fclose(file);Modules\ExtraSaveSlots.cpp
HookCalls(asm_xfclose, {0x4C5DBD, 0x4C5EA5, 0x4C5EB4});Modules\FileSystem.cpp
fo::func::db_fclose(fileStream);Modules\HeroAppearance.cpp
fo::func::db_fclose(FileStream);Modules\HeroAppearance.cpp
fo::func::db_fclose(file);Modules\Tiles.cpp
fo::func::db_fclose(artFile);Modules\Tiles.cpp
fo::func::db_fclose(file);Modules\Tiles.cpp
fo::func::db_fclose(artFile);Modules\Tiles.cpp
fo::func::db_fclose(file);Modules\Tiles.cpp
DbFile* db_fopen(char* path, char* mode)auto frmStream = fo::func::db_fopen(frmPath, "rb");FalloutEngine\EngineUtils.cpp
frmStream = fo::func::db_fopen(frmPath, "rb");FalloutEngine\EngineUtils.cpp
fo::DbFile* file = fo::func::db_fopen(edgPath, "rb");HRP\ViewMap\EdgeBorder.cpp
HookCalls(asm_xfopen, {0x4C5DA9, 0x4C5E16, 0x4C5EC8});Modules\FileSystem.cpp
return fo::func::db_fopen(file, mode);Modules\LoadOrder.cpp
jmp fo::funcoffs::db_fopen_;Modules\LoadOrder.cpp
call fo::funcoffs::db_fopen_;Modules\Message.cpp
jmp fo::funcoffs::db_fopen_;Modules\Message.cpp
return (premadePath) ? fo::func::db_fopen(premadePath, mode) : nullptr;Modules\Premade.cpp
jmp fo::funcoffs::db_fopen_;Modules\Premade.cpp
fo::DbFile* file = fo::func::db_fopen("art\\tiles\\gridmask.frm", "rb"); // same as grid000.frm from HRPModules\Tiles.cpp
fo::DbFile* artFile = fo::func::db_fopen(buf, "rb");Modules\Tiles.cpp
fo::DbFile* file = fo::func::db_fopen(buf, "wb");Modules\Tiles.cpp
fo::DbFile* file = fo::func::db_fopen("art\\tiles\\xltiles.lst", "rt");Modules\Tiles.cpp
char* db_fgets(char* buf, DWORD max_count, DbFile* file)while (fo::func::db_fgets(buf, 31, file) > 0) {Modules\Tiles.cpp
void db_fputc()HookCalls(asm_xfputc, {0x4C5FE4, 0x4C61B5, 0x4C61E2, 0x4C61FE, 0x4C6479, 0x4C64B3, 0x4C64D2});Modules\FileSystem.cpp
void db_fputs()HookCall(0x4C5FEC, asm_xfputs);Modules\FileSystem.cpp
void db_ungetc()HookCall(0x4C5FF4, asm_xfungetc);Modules\FileSystem.cpp
DWORD db_fread(void* buf, DWORD elsize, DWORD count, DbFile* file)if (fo::func::db_freadInt(frmStream, &frmHeader->version) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frmHeader->FPS) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frmHeader->actionFrame) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frmHeader->numFrames) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShortCount(frmStream, frmHeader->xCentreShift, 6) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShortCount(frmStream, frmHeader->yCentreShift, 6) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadIntCount(frmStream, frmHeader->oriOffset, 6) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadInt(frmStream, &frmHeader->frameAreaSize) == -1)FalloutEngine\EngineUtils.cpp
if (fo::func::db_freadShort(frmStream, &frame->width) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frame->height) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadInt(frmStream, &frame->size) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frame->x) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frame->y) == -1)FalloutEngine\EngineUtils.cpp
if (fo::func::db_fread(frame->indexBuff, 1, frame->size, frmStream) != frame->size)FalloutEngine\EngineUtils.cpp
fo::func::db_freadShort(file, &rixWidth);HRP\SplashScreen.cpp
fo::func::db_freadShort(file, &rixHeight);HRP\SplashScreen.cpp
fo::func::db_fread(rixBuffer, 1, size, file);HRP\SplashScreen.cpp
fo::func::db_freadInt(file, &getValue);HRP\ViewMap\EdgeBorder.cpp
fo::func::db_freadInt(file, &getValue);HRP\ViewMap\EdgeBorder.cpp
if (fo::func::db_freadInt(file, &getValue) || getValue) return file; // error, incorrect map levelHRP\ViewMap\EdgeBorder.cpp
if (fo::func::db_freadIntCount(file, (DWORD*)&edgeData->squareRect, 4) || fo::func::db_freadInt(file, (DWORD*)&edgeData->clipData)) {HRP\ViewMap\EdgeBorder.cpp
long result = fo::func::db_freadIntCount(file, (DWORD*)&edgeData->tileRect, 4); // load rectangle dataHRP\ViewMap\EdgeBorder.cpp
if (fo::func::db_freadInt(file, &getValue)) { // are there more rectangles on the current map level?HRP\ViewMap\EdgeBorder.cpp
if (fo::func::db_freadInt(fileStream, &temp) != -1 && temp < 100) {Modules\HeroAppearance.cpp
if (fo::func::db_freadInt(fileStream, &temp) != -1 && temp < 100) {Modules\HeroAppearance.cpp
fo::func::db_freadByteCount(file, mask, 80 * 36);Modules\Tiles.cpp
fo::func::db_freadShort(artFile, &width);Modules\Tiles.cpp
fo::func::db_freadShort(artFile, &height);Modules\Tiles.cpp
fo::func::db_fread(pixelData, 1, bytes, artFile) != bytes)Modules\Tiles.cpp
fo::func::db_freadByteCount(artFile, (BYTE*)&frame, 74);Modules\Tiles.cpp
void db_fwrite()HookCall(0x4C60B8, asm_xfwrite);Modules\FileSystem.cpp
if (fo::func::db_fwriteInt(FileStream, (DWORD)currentRaceVal) != -1) {Modules\HeroAppearance.cpp
fo::func::db_fwriteInt(FileStream, (DWORD)currentStyleVal);Modules\HeroAppearance.cpp
fo::func::db_fwriteByteCount(file, (BYTE*)&frame, sizeof(frame));Modules\Tiles.cpp
DWORD db_fseek(DbFile* file, DWORD pos, DWORD origin)fo::func::db_fseek(file, 4, SEEK_SET);HRP\SplashScreen.cpp
fo::func::db_fseek(file, 2 + 768, SEEK_CUR);HRP\SplashScreen.cpp
HookCall(0x4C60C0, asm_xfseek);Modules\FileSystem.cpp
jmp fo::funcoffs::db_fseek_;Modules\HeroAppearance.cpp
fo::func::db_fseek(file, 0x4A, SEEK_SET);Modules\Tiles.cpp
fo::func::db_fseek(artFile, 0x3E, SEEK_SET); // frameDataModules\Tiles.cpp
if (fo::func::db_fseek(artFile, 0x4A, SEEK_SET) ||Modules\Tiles.cpp
fo::func::db_fseek(artFile, 0, SEEK_SET);Modules\Tiles.cpp
void db_ftell()HookCall(0x4C60C8, asm_xftell);Modules\FileSystem.cpp
void db_rewind()HookCall(0x4C60D0, asm_xfrewind);Modules\FileSystem.cpp
void db_feof()HookCall(0x4C60D8, asm_xfeof);Modules\FileSystem.cpp
DWORD db_freadByte(DbFile* file, unsigned char* _out)fo::func::db_freadByteCount(file, mask, 80 * 36);Modules\Tiles.cpp
fo::func::db_freadByteCount(artFile, (BYTE*)&frame, 74);Modules\Tiles.cpp
DWORD db_freadShort(DbFile* file, ushort* _out)else if (fo::func::db_freadShort(frmStream, &frmHeader->FPS) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frmHeader->actionFrame) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frmHeader->numFrames) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShortCount(frmStream, frmHeader->xCentreShift, 6) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShortCount(frmStream, frmHeader->yCentreShift, 6) == -1)FalloutEngine\EngineUtils.cpp
if (fo::func::db_freadShort(frmStream, &frame->width) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frame->height) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frame->x) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShort(frmStream, &frame->y) == -1)FalloutEngine\EngineUtils.cpp
fo::func::db_freadShort(file, &rixWidth);HRP\SplashScreen.cpp
fo::func::db_freadShort(file, &rixHeight);HRP\SplashScreen.cpp
fo::func::db_freadShort(artFile, &width);Modules\Tiles.cpp
fo::func::db_freadShort(artFile, &height);Modules\Tiles.cpp
DWORD db_freadInt(DbFile* file, DWORD* _out)if (fo::func::db_freadInt(frmStream, &frmHeader->version) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadIntCount(frmStream, frmHeader->oriOffset, 6) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadInt(frmStream, &frmHeader->frameAreaSize) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadInt(frmStream, &frame->size) == -1)FalloutEngine\EngineUtils.cpp
fo::func::db_freadInt(file, &getValue);HRP\ViewMap\EdgeBorder.cpp
fo::func::db_freadInt(file, &getValue);HRP\ViewMap\EdgeBorder.cpp
if (fo::func::db_freadInt(file, &getValue) || getValue) return file; // error, incorrect map levelHRP\ViewMap\EdgeBorder.cpp
if (fo::func::db_freadIntCount(file, (DWORD*)&edgeData->squareRect, 4) || fo::func::db_freadInt(file, (DWORD*)&edgeData->clipData)) {HRP\ViewMap\EdgeBorder.cpp
long result = fo::func::db_freadIntCount(file, (DWORD*)&edgeData->tileRect, 4); // load rectangle dataHRP\ViewMap\EdgeBorder.cpp
if (fo::func::db_freadInt(file, &getValue)) { // are there more rectangles on the current map level?HRP\ViewMap\EdgeBorder.cpp
call fo::funcoffs::db_freadInt_;Modules\BugFixes.cpp
if (fo::func::db_freadInt(fileStream, &temp) != -1 && temp < 100) {Modules\HeroAppearance.cpp
if (fo::func::db_freadInt(fileStream, &temp) != -1 && temp < 100) {Modules\HeroAppearance.cpp
DWORD db_fwriteByte(DbFile* file, DWORD value)fo::func::db_fwriteByteCount(file, (BYTE*)&frame, sizeof(frame));Modules\Tiles.cpp
DWORD db_fwriteInt(DbFile* file, DWORD value)jmp fo::funcoffs::db_fwriteInt_;Modules\BugFixes.cpp
if (fo::func::db_fwriteInt(FileStream, (DWORD)currentRaceVal) != -1) {Modules\HeroAppearance.cpp
fo::func::db_fwriteInt(FileStream, (DWORD)currentStyleVal);Modules\HeroAppearance.cpp
DWORD db_freadByteCount(DbFile* file, unsigned char* dest, DWORD count)fo::func::db_freadByteCount(file, mask, 80 * 36);Modules\Tiles.cpp
fo::func::db_freadByteCount(artFile, (BYTE*)&frame, 74);Modules\Tiles.cpp
DWORD db_freadShortCount(DbFile* file, ushort* dest, DWORD count)else if (fo::func::db_freadShortCount(frmStream, frmHeader->xCentreShift, 6) == -1)FalloutEngine\EngineUtils.cpp
else if (fo::func::db_freadShortCount(frmStream, frmHeader->yCentreShift, 6) == -1)FalloutEngine\EngineUtils.cpp
DWORD db_freadIntCount(DbFile* file, DWORD* dest, DWORD count)else if (fo::func::db_freadIntCount(frmStream, frmHeader->oriOffset, 6) == -1)FalloutEngine\EngineUtils.cpp
if (fo::func::db_freadIntCount(file, (DWORD*)&edgeData->squareRect, 4) || fo::func::db_freadInt(file, (DWORD*)&edgeData->clipData)) {HRP\ViewMap\EdgeBorder.cpp
long result = fo::func::db_freadIntCount(file, (DWORD*)&edgeData->tileRect, 4); // load rectangle dataHRP\ViewMap\EdgeBorder.cpp
call fo::funcoffs::db_freadIntCount_;Modules\Tiles.cpp
DWORD db_fwriteByteCount(DbFile* file, char* cptr, DWORD count)fo::func::db_fwriteByteCount(file, (BYTE*)&frame, sizeof(frame));Modules\Tiles.cpp
DWORD db_get_file_list(char* searchMask, char*** fileList)int count = fo::func::db_get_file_list(fileMask.c_str(), &filenames);Modules\ScriptExtender.cpp
void db_free_file_list(char*** fileList, DWORD arg2)fo::func::db_free_file_list(&filenames, 0);Modules\ScriptExtender.cpp
void db_filelength()HookCalls(asm_xfilelength, {0x4C5DB4, 0x4C5E2D, 0x4C68BC});Modules\FileSystem.cpp
void rect_clip()call fo::funcoffs::rect_clip_;Game\GUI\render.cpp
void rect_malloc()__asm call fo::funcoffs::rect_malloc_;Game\GUI\render.cpp
void debug_printf()__asm jmp fo::funcoffs::debug_printf_;FalloutEngine\Functions.cpp
__asm jmp fo::funcoffs::debug_printf_;FalloutEngine\Functions.cpp
//fo::func::debug_printf("\ntile_dist: %d", currentRange);Game\tilemap.cpp
//fo::func::debug_printf("\ntile_num: %d [x:%d y:%d]", tile, target_X, target_Y);Game\tilemap.cpp
//fo::func::debug_printf("\ntile_num: %d [x:%d y:%d]", tile, target_X, target_Y);Game\tilemap.cpp
fo::func::debug_printf("\nTilemap::make_path_func: failed to build a path, exceeded the 'pathCounter' limit.");Game\tilemap.cpp
//fo::func::debug_printf("\nmake_path_func: tiles [to %d]", childData.tile);Game\tilemap.cpp
//fo::func::debug_printf(" <- %d", childData.tile);Game\tilemap.cpp
//fo::func::debug_printf(" <- %d [from] len:%d\n", dadData->tile, pathLen);Game\tilemap.cpp
if (lockCount >= lockLimit) fo::func::debug_printf("\n[SFALL] Warning: The number of animated slots in the lock is too large, locked %d of %d", lockCount, animationLimit);Modules\Animations.cpp
call fo::funcoffs::debug_printf_;Modules\BugFixes.cpp
fo::func::debug_printf(errorTable, "set_critical_table()");Modules\Criticals.cpp
fo::func::debug_printf(errorTable, "get_critical_table()");Modules\Criticals.cpp
fo::func::debug_printf(errorTable, "reset_critical_table()");Modules\Criticals.cpp
if (!itMem->second.proto) fo::func::debug_printf("[SFALL] Error get critter prototype pid: %d\n", itMem->second.pid);Modules\CritterStats.cpp
fo::func::debug_printf("LOADSAVE: Total critter base stats saved: %d\n", count);Modules\CritterStats.cpp
fo::func::debug_printf("LOADSAVE: Total critter bonus stats saved: %d\n", count);Modules\CritterStats.cpp
fo::func::debug_printf("LOADSAVE: Critter PID/ID: %d/%d, saved base stat: %d, value: %d, def: %d\n", data.objPID, data.objID, data.stat, data.amount, data.defVal);Modules\CritterStats.cpp
fo::func::debug_printf("LOADSAVE: Critter PID/ID: %d/%d, saved bonus stat: %d, value: %d, def: %d\n", data.objPID, data.objID, data.stat, data.amount, data.defVal);Modules\CritterStats.cpp
call fo::funcoffs::debug_printf_;Modules\DebugEditor.cpp
call fo::funcoffs::debug_printf_;Modules\DebugEditor.cpp
call fo::funcoffs::debug_printf_;Modules\DebugEditor.cpp
jmp fo::funcoffs::debug_printf_; // ERROR: attempt to reference...Modules\DebugEditor.cpp
call fo::funcoffs::debug_printf_;Modules\DebugEditor.cpp
fo::func::debug_printf("System timer resolution: %d - %d ms.\n", min, max);Modules\DebugEditor.cpp
fo::func::debug_printf("\nApperanceMod: art\\intrface\\AppHeroWin.frm file not found.");Modules\HeroAppearance.cpp
call fo::funcoffs::debug_printf_;Modules\Inventory.cpp
fo::func::debug_printf("\n[SFALL] ERROR reading data: %s", buf);Modules\LoadGameHook.cpp
fo::func::debug_printf("\nSFALL: [State reset %s]\n", str);Modules\LoadGameHook.cpp
fo::func::debug_printf("\nOPCODE ERROR: metarule3(%d, ...) - metarule function number does not exist.\n > Script: %s, procedure %s.",Modules\MetaruleExtender.cpp
jmp fo::funcoffs::debug_printf_;Modules\MiscPatches.cpp
if (isDebug) fo::func::debug_printf("\n[SFALL] Save dude state.");Modules\PartyControl.cpp
if (isDebug) fo::func::debug_printf("\n[SFALL] Take control of critter.");Modules\PartyControl.cpp
if (isDebug) fo::func::debug_printf("\n[SFALL] Restore control to dude.\n");Modules\PartyControl.cpp
fo::func::debug_printf("\n[SFALL] Script: %s will not be executed. A script with the same name already exists in another directory.", fullPath);Modules\ScriptExtender.cpp
fo::func::debug_printf("\nWarning: critter PID: %d, ID: %d, has an incorrect base value of the max HP stat: %d (must be %d)",Modules\Stats.cpp
if (isDebug) fo::func::debug_printf("\nWARNING: A recursive hook with ID %d was running.", hook);Modules\HookScripts\Common.cpp
fo::func::debug_printf("\n[SFALL] The hook ID: %d cannot be executed.", hook);Modules\HookScripts\Common.cpp
fo::func::debug_printf("\nOPCODE ERROR: %s\n > Script: %s, procedure %s.", msg, _program->fileName, procName);Modules\Scripting\OpcodeContext.cpp
fo::func::debug_printf(fmt, name);Modules\Scripting\Handlers\Objects.cpp
void debug_log()call fo::funcoffs::debug_log_;Modules\DebugEditor.cpp
void setSystemPalette()call fo::funcoffs::setSystemPalette_;HRP\Init.cpp
void loadColorTable()__asm call fo::funcoffs::loadColorTable_;HRP\DeathScreen.cpp
__asm call fo::funcoffs::loadColorTable_;HRP\HelpScreen.cpp
call fo::funcoffs::loadColorTable_;Modules\Scripting\Handlers\Misc.cpp
void rebuildColorBlendTables()// jmp fo::funcoffs::rebuildColorBlendTables_;Modules\SubModules\DirectDraw.cpp
BlendColorTableData* getColorBlendTable(DWORD color)fo::BlendColorTableData* blendTable = fo::func::getColorBlendTable(colorFlags);HRP\Image.cpp
void freeColorBlendTable(DWORD color)fo::func::freeColorBlendTable(colorFlags);HRP\Image.cpp
DWORD get_input()return (!reqGameQuit) ? fo::func::get_input() : 27; // ESC codeWinProc.cpp
button = fo::func::get_input();Modules\ExtraSaveSlots.cpp
button = fo::func::get_input();Modules\HeroAppearance.cpp
int button = fo::func::get_input();Modules\HeroAppearance.cpp
call fo::funcoffs::get_input_;Modules\MainLoopHook.cpp
call fo::funcoffs::get_input_;Modules\MainLoopHook.cpp
call fo::funcoffs::get_input_; // also windows message pumpModules\Movies.cpp
} while (fo::var::mouse_buttons != 2 && fo::func::get_input() != 27); // 27 - escape codeModules\PartyControl.cpp
jmp fo::funcoffs::get_input_;Modules\Worldmap.cpp
jmp fo::funcoffs::get_input_;Modules\Worldmap.cpp
jmp fo::funcoffs::get_input_;Modules\Worldmap.cpp
void process_bk()jmp fo::funcoffs::process_bk_;HRP\Init.cpp
call fo::funcoffs::process_bk_;Modules\AI.cpp
fo::func::process_bk(); // eliminate lag when loading texturesModules\TalkingHeads.cpp
__asm call fo::funcoffs::process_bk_;Modules\Worldmap.cpp
void GNW_do_bk_process()call fo::funcoffs::GNW_do_bk_process_;Modules\BugFixes.cpp
void add_bk_process()call fo::funcoffs::add_bk_process_;HRP\MoviesScreen.cpp
void remove_bk_process()call fo::funcoffs::remove_bk_process_;HRP\MoviesScreen.cpp
jmp fo::funcoffs::remove_bk_process_;Modules\LoadGameHook.cpp
void dump_screen()MakeJump(0x4C8F4C, dump_screen_hack_replacement);Modules\Graphics.cpp
void get_time()jmp fo::funcoffs::get_time_;Modules\BugFixes.cpp
void pause_for_tocks()call fo::funcoffs::pause_for_tocks_;Modules\MiscPatches.cpp
DWORD block_for_tocks(DWORD ticks)call fo::funcoffs::block_for_tocks_;Modules\BugFixes.cpp
call fo::funcoffs::block_for_tocks_;Modules\Worldmap.cpp
fo::func::block_for_tocks(200);Modules\Scripting\Handlers\Worldmap.cpp
void set_focus_func(void* func)fo::func::set_focus_func(LostFocus);Modules\Movies.cpp
void GNW95_hook_input()call fo::funcoffs::GNW95_hook_input_;WinProc.cpp
__asm call fo::funcoffs::GNW95_hook_input_;WinProc.cpp
void GNW95_process_message()__asm call fo::funcoffs::GNW95_process_message_;Modules\DebugEditor.cpp
void mouse_show()fo::func::mouse_show(); // for updating background cursor areaGame\GUI\render.cpp
fo::func::mouse_show();Game\GUI\render.cpp
if (mouseWasHidden) fo::func::mouse_show();Modules\HeroAppearance.cpp
void mouse_hide()if (mouseWasHidden) fo::func::mouse_hide();Modules\HeroAppearance.cpp
DWORD mouse_in(DWORD x, DWORD y, DWORD x_offs, DWORD y_offs)if (fo::var::mouse_is_hidden || !fo::func::mouse_in(updateRect->left, updateRect->top, updateRect->right, updateRect->bottom)) {Game\GUI\render.cpp
if (!toBuffer && !fo::var::getInt(FO_VAR_doing_refresh_all) && !fo::var::mouse_is_hidden && fo::func::mouse_in(updateRect->left, updateRect->top, updateRect->right, updateRect->bottom)) {Game\GUI\render.cpp
DWORD mouse_click_in(DWORD x, DWORD y, DWORD x_offs, DWORD y_offs)jmp fo::funcoffs::mouse_click_in_;HRP\Dialog.cpp
jmp fo::funcoffs::mouse_click_in_;HRP\Inventory.cpp
jmp fo::funcoffs::mouse_click_in_;HRP\Worldmap.cpp
return fo::func::mouse_click_in(mapVisibleArea.left, mapVisibleArea.top, mapVisibleArea.right, mapVisibleArea.bottom);HRP\ViewMap\EdgeClipping.cpp
call fo::funcoffs::mouse_click_in_;Modules\BugFixes.cpp
if (fo::func::mouse_click_in(rect->left, rect->top, rect->right, rect->bottom)) return 0; // 0 - block clicking in the window areaModules\Interface.cpp
return fo::func::mouse_click_in(rect->left, rect->top, rect->right, rect->bottom); // 1 - click in the display window areaModules\Interface.cpp
call fo::funcoffs::mouse_click_in_;Modules\Inventory.cpp
call fo::funcoffs::mouse_click_in_;Modules\Inventory.cpp
call fo::funcoffs::mouse_click_in_;Modules\Inventory.cpp
call fo::funcoffs::mouse_click_in_;Modules\Inventory.cpp
call fo::funcoffs::mouse_click_in_;Modules\HookScripts\InventoryHs.cpp
void mouse_get_rect()call fo::funcoffs::mouse_get_rect_;Game\GUI\render.cpp
void mouse_get_position(DWORD* outX, DWORD* outY)call fo::funcoffs::mouse_get_position_;HRP\Character.cpp
call fo::funcoffs::mouse_get_position_;HRP\LoadSave.cpp
call fo::funcoffs::mouse_get_position_;HRP\MiscInterface.cpp
call fo::funcoffs::mouse_get_position_;HRP\Worldmap.cpp
fo::func::mouse_get_position(&x, &y);HRP\ViewMap\EdgeClipping.cpp
SafeWriteBytes(0x4CA9DC, (BYTE*)&data, 5); // mouse_get_position_Modules\BugFixes.cpp
call fo::funcoffs::mouse_get_position_;Modules\Scripting\Handlers\Misc.cpp
void GNW95_SetPaletteEntries()MakeJump(fo::funcoffs::GNW95_SetPaletteEntries_ + 1, GNW95_SetPaletteEntries_replacement); // 0x4CB311Modules\Graphics.cpp
MakeJump(fo::funcoffs::GNW95_SetPaletteEntries_ + 1, GNW95_SetPaletteEntries_hack_replacement); // 0x4CB310Modules\SubModules\DirectDraw.cpp
void GNW95_SetPalette()MakeJump(fo::funcoffs::GNW95_SetPalette_, GNW95_SetPalette_replacement); // 0x4CB568Modules\Graphics.cpp
MakeJump(fo::funcoffs::GNW95_SetPalette_, GNW95_SetPalette_hack_replacement); // 0x4CB568Modules\SubModules\DirectDraw.cpp
void kb_clear()__asm call fo::funcoffs::kb_clear_;InputFuncs.cpp
__asm call fo::funcoffs::kb_clear_;Modules\MetaruleExtender.cpp
void cscale(unsigned char* src, DWORD sWidth, DWORD sHeight, DWORD sStride, unsigned char* dst, DWORD width, DWORD height, DWORD stride)fo::func::cscale(scr, width, frm->frames->height, frm->frames->width, win->surface, win->width, win->height, win->width);HRP\InterfaceBar.cpp
fo::func::cscale(scr + 30, sw, h, w, dst + 30, dw, dh, IFaceBar::IFACE_BAR_WIDTH); // TODO: replace the scaling algorithm with a better oneHRP\InterfaceBar.cpp
jmp fo::funcoffs::cscale_;HRP\LoadSave.cpp
fo::func::cscale((BYTE*)desc.lpSurface, bW, bH, bW, dst, toW, toH, win->width);HRP\MoviesScreen.cpp
call fo::funcoffs::cscale_;Modules\Interface.cpp
void trans_cscale(void* fromBuff, DWORD width, DWORD height, DWORD fromPitch, void* toBuff, DWORD toWidth, DWORD toHeight, DWORD toPitch)call fo::funcoffs::trans_cscale_; // *from_buff<eax>, i_width<edx>, i_height<ebx>, i_width2<ecx>, to_buff, width, height, to_widthFalloutEngine\Functions.cpp
fo::func::trans_cscale(btnBackgroundFrm->frames->indexBuff, sw, sh, sw, dst, (long)(sw * scaleFactor), (long)(sh * scaleFactor), dstW);HRP\MainMenu.cpp
fo::func::trans_cscale(((frmPtr->id == 'PCX') ? frmPtr->pixelData : framePtr->data), framePtr->width, framePtr->height, framePtr->width,Modules\Scripting\Handlers\Interface.cpp
void buf_to_buf()auto drawFunc = (win->flags & fo::WinFlags::Transparent && win->wID) ? fo::func::trans_buf_to_buf : fo::func::buf_to_buf;Game\GUI\render.cpp
sf::MakeJump(fo::funcoffs::buf_to_buf_, fo::func::buf_to_buf); // 0x4D36D4Game\GUI\render.cpp
fo::func::buf_to_buf(src, w, h, srcW, dst, Setting::ScreenWidth());HRP\CreditsScreen.cpp
fo::func::buf_to_buf(frm->frame.data, width, height, width, dst, Setting::ScreenWidth());HRP\DeathScreen.cpp
jmp fo::funcoffs::buf_to_buf_;HRP\Dialog.cpp
fo::func::buf_to_buf((BYTE*)fo::var::getInt(FO_VAR_display_buf) + x + (y * srcWidth), w, h, srcWidth, dst, width);HRP\Dialog.cpp
fo::func::buf_to_buf(src, w, h, srcWidth, dst, dstWidth);HRP\Dialog.cpp
fo::func::buf_to_buf(frm->frame.data, width, height, width, dst, Setting::ScreenWidth());HRP\HelpScreen.cpp
fo::func::buf_to_buf(scr, 30, dh, w, dst, IFaceBar::IFACE_BAR_WIDTH);HRP\InterfaceBar.cpp
fo::func::buf_to_buf(scr + sxOffset, 460, dh, w, dst + dxOffset, IFaceBar::IFACE_BAR_WIDTH);HRP\InterfaceBar.cpp
fo::func::buf_to_buf(frm->frames->indexBuff, frm->frames->width, h, frm->frames->width, dst, IFaceBar::IFACE_BAR_WIDTH);HRP\InterfaceBar.cpp
jmp fo::funcoffs::buf_to_buf_;HRP\InterfaceBar.cpp
jmp fo::funcoffs::buf_to_buf_;HRP\InterfaceBar.cpp
jmp fo::funcoffs::buf_to_buf_;HRP\InterfaceBar.cpp
jmp fo::funcoffs::buf_to_buf_;HRP\InterfaceBar.cpp
fo::func::buf_to_buf(ifaceWin->surface + 23 + (24 * IFaceBar::IFACE_BAR_WIDTH), IFaceBar::display_width, h, IFaceBar::IFACE_BAR_WIDTH, dispBuff, IFaceBar::display_width);HRP\InterfaceBar.cpp
jmp fo::funcoffs::buf_to_buf_;HRP\InterfaceBar.cpp
fo::func::buf_to_buf(src, sw, sh, sw, dst, dstW); // direct copyHRP\MainMenu.cpp
fo::func::buf_to_buf(src, width, height, width, dst, Setting::ScreenWidth());HRP\SlidesScreen.cpp
fo::func::buf_to_buf(src, w, h, srcW, dst, Setting::ScreenWidth());HRP\SlidesScreen.cpp
fo::func::buf_to_buf(mveSurface, width, mveDesc.dwHeight, width, (BYTE*)dRect.pBits, dRect.Pitch);Modules\Graphics.cpp
jmp fo::funcoffs::buf_to_buf_;Modules\Interface.cpp
fo::func::buf_to_buf(src, width, height, sWidth, ddObject->BufferSurface() + (x + (y * HRP::Setting::ScreenWidth())), HRP::Setting::ScreenWidth());Modules\SubModules\DirectDraw.cpp
void trans_buf_to_buf()auto drawFunc = (win->flags & fo::WinFlags::Transparent && win->wID) ? fo::func::trans_buf_to_buf : fo::func::buf_to_buf;Game\GUI\render.cpp
fo::func::trans_buf_to_buf(surface, width, height, widthFrom, &toBuffer[rect.left - updateRect->left] + ((rect.top - updateRect->top) * toWidth), toWidth);Game\GUI\render.cpp
fo::func::trans_buf_to_buf(surface, width, height, widthFrom, &GetBuffer()[rect.left] + (rect.top * toWidth), toWidth);Game\GUI\render.cpp
sf::MakeJump(fo::funcoffs::trans_buf_to_buf_, fo::func::trans_buf_to_buf); // 0x4D3704Game\GUI\render.cpp
jmp fo::funcoffs::trans_buf_to_buf_;HRP\InterfaceBar.cpp
fo::func::trans_buf_to_buf(btnBackgroundFrm->frames->indexBuff, sw, sh, sw, dst, dstW); // direct copyHRP\MainMenu.cpp
void Create_AudioDecoder()jmp fo::funcoffs::Create_AudioDecoder_;Modules\Sound.cpp
jmp fo::funcoffs::Create_AudioDecoder_;Modules\Sound.cpp
void text_curr()jmp fo::funcoffs::text_curr_;Modules\LoadGameHook.cpp
DWORD text_font(DWORD fontNum)fo::func::text_font(101);Game\GUI\Text.cpp
fo::func::text_font(font);Game\GUI\Text.cpp
call fo::funcoffs::text_font_;Modules\BugFixes.cpp
call fo::funcoffs::text_font_;Modules\BugFixes.cpp
fo::func::text_font(ref);Modules\HeroAppearance.cpp
jmp fo::funcoffs::text_font_;Modules\Interface.cpp
call fo::funcoffs::text_font_;Modules\MiscPatches.cpp
jmp fo::funcoffs::text_font_;Modules\PartyControl.cpp
DWORD win_add(DWORD x, DWORD y, DWORD width, DWORD height, DWORD bgColorIndex, DWORD flags)return fo::func::win_add(xPos, yPos, width, height, color, flags);HRP\Character.cpp
jmp fo::funcoffs::win_add_;HRP\Character.cpp
return fo::func::win_add(xPos, yPos, width, height, color, flags);HRP\Character.cpp
return fo::func::win_add(0, 0, Setting::ScreenWidth(), Setting::ScreenHeight(), color, flags);HRP\DeathScreen.cpp
return fo::func::win_add(xPos, yPos, width, height, color, flags);HRP\Dialog.cpp
jmp fo::funcoffs::win_add_;HRP\Dialog.cpp
jmp fo::funcoffs::win_add_;HRP\Dialog.cpp
jmp fo::funcoffs::win_add_;HRP\Dialog.cpp
return fo::func::win_add(0, 0, Setting::ScreenWidth(), Setting::ScreenHeight(), color, flags);HRP\HelpScreen.cpp
long leftID = fo::func::win_add(0, yPos, xPos, height, 0, flags);HRP\InterfaceBar.cpp
long rightID = fo::func::win_add(xPos + width, yPos, Setting::ScreenWidth() - (xPos + width), height, 0, flags);HRP\InterfaceBar.cpp
return fo::func::win_add(xPos, yPos, width, height, color, flags);HRP\InterfaceBar.cpp
jmp fo::funcoffs::win_add_;HRP\InterfaceBar.cpp
jmp fo::funcoffs::win_add_;HRP\InterfaceBar.cpp
return fo::func::win_add(xPos, yPos, width, height, color, flags);HRP\Inventory.cpp
return fo::func::win_add(xPos, yPos, width, height, color, flags);HRP\LoadSave.cpp
jmp fo::funcoffs::win_add_;HRP\LoadSave.cpp
return fo::func::win_add(x, y, w, h, color, flags | fo::WinFlags::DontMoveTop);HRP\MainMenu.cpp
return fo::func::win_add(xPosition, yPosition, width, height, color, flags);HRP\MiscInterface.cpp
return fo::func::win_add(xPos, yPos, width, height, color, flags);HRP\Worldmap.cpp
int winRef = fo::func::win_add(resWidth / 2 - 242, (resHeight - 100) / 2 - 65, 484, 230, 100, 0x4);Modules\HeroAppearance.cpp
void win_delete(DWORD winRef)call fo::funcoffs::win_delete_;HRP\Dialog.cpp
call fo::funcoffs::win_delete_;HRP\Worldmap.cpp
fo::func::win_delete(winRef);Modules\HeroAppearance.cpp
jmp fo::funcoffs::win_delete_;Modules\LoadGameHook.cpp
jmp fo::funcoffs::win_delete_;Modules\LoadGameHook.cpp
jmp fo::funcoffs::win_delete_;Modules\LoadGameHook.cpp
void win_print(DWORD winID, char* text, DWORD textWidth, DWORD xPos, DWORD yPos, DWORD colorFlags)jmp fo::funcoffs::win_print_;HRP\MainMenu.cpp
call fo::funcoffs::win_print_;Modules\BugFixes.cpp
jmp fo::funcoffs::win_print_;Modules\Interface.cpp
fo::func::win_print(winId, text, fWidth, xPos, yPos - 12, color); // fallout printModules\MainMenu.cpp
fo::func::win_print(winId, VerString1, sWidth, xPos + fWidth - sWidth, yPos, color); // sfall printModules\MainMenu.cpp
void win_line()call fo::funcoffs::win_line_;FalloutEngine\Functions.cpp
void win_show(DWORD winRef)fo::func::win_show(fo::var::getInt(FO_VAR_display_win));HRP\Dialog.cpp
fo::func::win_show(leftBarID);HRP\InterfaceBar.cpp
fo::func::win_show(rightBarID);HRP\InterfaceBar.cpp
fo::func::win_show(winID);HRP\InterfaceBar.cpp
jmp fo::funcoffs::win_show_;HRP\Worldmap.cpp
jmp fo::funcoffs::win_show_;Modules\BugFixes.cpp
fo::func::win_show(winRef);Modules\HeroAppearance.cpp
fo::func::win_show(fo::var::sWindows[i].wID);Modules\Scripting\Handlers\Interface.cpp
void win_hide(DWORD winRef)fo::func::win_hide(fo::var::getInt(FO_VAR_display_win));HRP\Dialog.cpp
fo::func::win_hide(leftBarID);HRP\InterfaceBar.cpp
fo::func::win_hide(rightBarID);HRP\InterfaceBar.cpp
fo::func::win_hide(winID);HRP\InterfaceBar.cpp
fo::func::win_hide(fo::var::getInt(FO_VAR_display_win));HRP\Worldmap.cpp
fo::func::win_hide(fo::var::sWindows[i].wID);Modules\Scripting\Handlers\Interface.cpp
void win_draw(DWORD winRef)fo::func::win_draw(fo::var::getInt(FO_VAR_display_win));HRP\Dialog.cpp
fo::func::win_draw_rect(fo::var::interfaceWindow, (RECT*)&rect);HRP\InterfaceBar.cpp
//fo::func::win_draw(fo::var::getInt(FO_VAR_display_win)); // for testHRP\ViewMap\EdgeBorder.cpp
jmp fo::funcoffs::win_draw_; // update black edges after tile_set_center_HRP\ViewMap\ViewMap.cpp
fo::func::win_draw(winRef);Modules\ExtraSaveSlots.cpp
fo::func::win_draw(WinRef);Modules\HeroAppearance.cpp
fo::func::win_draw(winRef);Modules\HeroAppearance.cpp
fo::func::win_draw_rect(fo::var::wmBkWin, &rect);Modules\Interface.cpp
jmp fo::funcoffs::win_draw_;Modules\LoadGameHook.cpp
fo::func::win_draw(fo::var::edit_win);Modules\Scripting\Handlers\Interface.cpp
fo::func::win_draw(fo::var::i_wid);Modules\Scripting\Handlers\Interface.cpp
void win_draw_rect(DWORD winRef, RECT* rect)fo::func::win_draw_rect(fo::var::interfaceWindow, (RECT*)&rect);HRP\InterfaceBar.cpp
fo::func::win_draw_rect(fo::var::wmBkWin, &rect);Modules\Interface.cpp
void GNW_win_refresh(Window* win, RECT* rect, DWORD* buffer)fo::func::GNW_win_refresh(win, &win->rect, nullptr);FalloutEngine\EngineUtils.cpp
fo::func::GNW_win_refresh(fo::var::window[i], &fo::var::scr_size, 0);FalloutEngine\EngineUtils.cpp
call fo::funcoffs::GNW_win_refresh_;Modules\BugFixes.cpp
void win_refresh_all()call fo::funcoffs::win_refresh_all_;WinProc.cpp
call fo::funcoffs::win_refresh_all_;WinProc.cpp
__asm call fo::funcoffs::win_refresh_all_;Modules\SubModules\DirectDraw.cpp
void win_clip(Window* window, RectList** rects, void* buffer)fo::func::win_clip(win, &rects, toBuffer);Game\GUI\render.cpp
void refresh_all()call fo::funcoffs::refresh_all_;Game\GUI\render.cpp
Window* GNW_find(DWORD winRef)fo::Window* win = fo::func::GNW_find(winID);FalloutEngine\EngineUtils.cpp
fo::Window* win = fo::func::GNW_find(winID);FalloutEngine\EngineUtils.cpp
fo::Window* win = fo::func::GNW_find(winId);HRP\InterfaceBar.cpp
fo::Window* ifaceWin = fo::func::GNW_find(fo::var::interfaceWindow);HRP\InterfaceBar.cpp
fo::Window* win = fo::func::GNW_find(fo::var::interfaceWindow);HRP\InterfaceBar.cpp
fo::Window* win = fo::func::GNW_find(fo::var::getInt(FO_VAR_GNWWin));HRP\MoviesScreen.cpp
fo::Window* win = fo::func::GNW_find(fo::var::interfaceWindow);HRP\ViewMap\EdgeClipping.cpp
call fo::funcoffs::GNW_find_;Modules\BugFixes.cpp
fo::Window *SaveLoadWin = fo::func::GNW_find(winRef);Modules\ExtraSaveSlots.cpp
fo::Window *SaveLoadWin = fo::func::GNW_find(fo::var::lsgwin);Modules\ExtraSaveSlots.cpp
fo::Window *WinInfo = fo::func::GNW_find(WinRef);Modules\HeroAppearance.cpp
fo::Window *winInfo = fo::func::GNW_find(winRef);Modules\HeroAppearance.cpp
return (winID > 0) ? fo::func::GNW_find(winID) : nullptr;Modules\Interface.cpp
win = fo::func::GNW_find(fo::var::getInt(FO_VAR_display_win));Modules\Interface.cpp
call fo::funcoffs::GNW_find_;Modules\Inventory.cpp
call fo::funcoffs::GNW_find_;Modules\Inventory.cpp
call fo::funcoffs::GNW_find_;Modules\Inventory.cpp
fo::Window* dialogWin = fo::func::GNW_find(fo::var::dialogueBackWindow);Modules\TalkingHeads.cpp
fo::Window* win = fo::func::GNW_find(fo::var::sWindows[i].wID);Modules\Scripting\Handlers\Interface.cpp
fo::Window* win = fo::func::GNW_find((wid > 0) ? wid : fo::var::i_wid); // i_wid - set flag to current game interface windowModules\Scripting\Handlers\Interface.cpp
DWORD win_get_top_win(DWORD x, DWORD y)if (fo::func::win_get_top_win(x, y) == fo::var::getInt(FO_VAR_display_win)) {HRP\ViewMap\EdgeClipping.cpp
SafeWriteBytes(0x4D78CC, (BYTE*)&data, 5); // win_get_top_win_Modules\BugFixes.cpp
void win_get_rect()jmp fo::funcoffs::win_get_rect_;Modules\Sound.cpp
void win_register_button()call fo::funcoffs::win_register_button_;FalloutEngine\Functions.cpp
jmp fo::funcoffs::win_register_button_;HRP\InterfaceBar.cpp
jmp fo::funcoffs::win_register_button_;HRP\InterfaceBar.cpp
jmp fo::funcoffs::win_register_button_;HRP\MainMenu.cpp
fo::func::win_register_button(winRef, 100, 60, 24, 20, -1, 0x500, 0x54B, 0x14B, 0, 0, 0, 32);Modules\ExtraSaveSlots.cpp
fo::func::win_register_button(winRef, 68, 60, 24, 20, -1, 0x500, 0x549, 0x149, 0, 0, 0, 32);Modules\ExtraSaveSlots.cpp
fo::func::win_register_button(winRef, 216, 60, 24, 20, -1, 0x500, 0x54D, 0x14D, 0, 0, 0, 32);Modules\ExtraSaveSlots.cpp
fo::func::win_register_button(winRef, 248, 60, 24, 20, -1, 0x500, 0x551, 0x151, 0, 0, 0, 32);Modules\ExtraSaveSlots.cpp
fo::func::win_register_button(winRef, 140, 60, 60, 20, -1, -1, 'p', -1, 0, 0, 0, 32);Modules\ExtraSaveSlots.cpp
fo::func::win_register_button(winRef, 115, 181, 26, 26, -1, -1, -1, 0x0D, MenuUSurface, MenuDSurface, 0, 0x20);Modules\HeroAppearance.cpp
fo::func::win_register_button(winRef, 25, 84, 24, 25, -1, -1, -1, 0x150, DidownUSurface, DidownDSurface, 0, 0x20);Modules\HeroAppearance.cpp
fo::func::win_register_button(winRef, 25, 59, 23, 24, -1, -1, -1, 0x148, DiupUSurface, DiupDSurface, 0, 0x20);Modules\HeroAppearance.cpp
fo::func::win_register_button(WinRef, 332, 0, 82, 32, -1, -1, 0x501, -1, 0, 0, 0, 0);Modules\HeroAppearance.cpp
fo::func::win_register_button(WinRef, 332, 226, 82, 32, -1, -1, 0x502, -1, 0, 0, 0, 0);Modules\HeroAppearance.cpp
fo::func::win_register_button(WinRef, 348, 37, 20, 18, -1, -1, -1, 0x511, newButtonSurface, newButtonSurface + (20 * 18), 0, 0x20);Modules\HeroAppearance.cpp
fo::func::win_register_button(WinRef, 374, 37, 20, 18, -1, -1, -1, 0x513, newButtonSurface + (20 * 18 * 2), newButtonSurface + (20 * 18 * 3), 0, 0x20);Modules\HeroAppearance.cpp
fo::func::win_register_button(WinRef, 348, 199, 20, 18, -1, -1, -1, 0x512, newButtonSurface, newButtonSurface + (20 * 18), 0, 0x20);Modules\HeroAppearance.cpp
fo::func::win_register_button(WinRef, 374, 199, 20, 18, -1, -1, -1, 0x514, newButtonSurface + (20 * 18 * 2), newButtonSurface + (20 * 18 * 3), 0, 0x20);Modules\HeroAppearance.cpp
jmp fo::funcoffs::win_register_button_;Modules\Interface.cpp
call fo::funcoffs::win_register_button_;Modules\Interface.cpp
if (fo::func::win_register_button(winRef, xPos, yPos, width, height, -1, -1, -1, 0x300, picUp, picDown, 0, 32) != -1) {Modules\QuestList.cpp
if (fo::func::win_register_button(winRef, xPos, yPos + height, width, height, -1, -1, -1, 0x301, picUp, picDown, 0, 32) != -1) {Modules\QuestList.cpp
void win_register_button_sound_func()call fo::funcoffs::win_register_button_sound_func_;Modules\Interface.cpp
call fo::funcoffs::win_register_button_sound_func_;Modules\Interface.cpp
call fo::funcoffs::win_register_button_sound_func_; // eax - register buttonModules\QuestList.cpp
void GNW_button_refresh()call fo::funcoffs::GNW_button_refresh_;Game\GUI\render.cpp
call fo::funcoffs::GNW_button_refresh_;Game\GUI\render.cpp
call fo::funcoffs::GNW_button_refresh_;Game\GUI\render.cpp
void WindowProc()MakeJump(0x4DE9FC, WindowProc); // WindowProc_WinProc.cpp
void stricmp()call fo::funcoffs::stricmp_; // compare music file nameModules\MiscPatches.cpp
void xfclose()jmp fo::funcoffs::xfclose_;Modules\FileSystem.cpp
call fo::funcoffs::xfclose_;Modules\FileSystem.cpp
DbFile* xfopen(char* fileName, char* flags)jmp fo::funcoffs::xfopen_;Modules\FileSystem.cpp
call fo::funcoffs::xfopen_;Modules\FileSystem.cpp
void xvfprintf()jmp fo::funcoffs::xvfprintf_;Modules\FileSystem.cpp
void xfgetc()jmp fo::funcoffs::xfgetc_;Modules\FileSystem.cpp
void xfgets()jmp fo::funcoffs::xfgets_;Modules\FileSystem.cpp
void xfputc()jmp fo::funcoffs::xfputc_;Modules\FileSystem.cpp
void xfputs()jmp fo::funcoffs::xfputs_;Modules\FileSystem.cpp
void xungetc()jmp fo::funcoffs::xungetc_;Modules\FileSystem.cpp
void xfread()call fo::funcoffs::xfread_;Modules\BugFixes.cpp
jmp fo::funcoffs::xfread_;Modules\FileSystem.cpp
call fo::funcoffs::xfread_;Modules\FileSystem.cpp
void xfwrite()jmp fo::funcoffs::xfwrite_;Modules\FileSystem.cpp
DWORD xfseek(DbFile* file, DWORD fOffset, DWORD origin)jmp fo::funcoffs::xfseek_;Modules\FileSystem.cpp
void xftell()jmp fo::funcoffs::xftell_;Modules\FileSystem.cpp
void xrewind()jmp fo::funcoffs::xrewind_;Modules\FileSystem.cpp
void xfeof()jmp fo::funcoffs::xfeof_;Modules\FileSystem.cpp
void xfilelength()jmp fo::funcoffs::xfilelength_;Modules\FileSystem.cpp
call fo::funcoffs::xfilelength_;Modules\FileSystem.cpp
void xremovepath()call fo::funcoffs::xremovepath_;Modules\LoadOrder.cpp
void WinMainCRTStartup()bool isEnabled = (*(DWORD*)0x4E4480 != 0x278805C7); // check if Mash's HRP is enabledHRP\Init.cpp
std::fseek(ft, 0xD4880, SEEK_SET); // 0x4E4480HRP\Init.cpp
void* dbase_open(char* fileName)return fo::func::dbase_open(fileName);Modules\HeroAppearance.cpp
void dbase_close(void* dbPtr)fo::func::dbase_close(dat);Modules\HeroAppearance.cpp
void exit()__asm call fo::funcoffs::exit_;WinProc.cpp
void nfree()call fo::funcoffs::nfree_; // free path stringModules\LoadOrder.cpp
call fo::funcoffs::nfree_; // free selfModules\LoadOrder.cpp
void sprintf()call fo::funcoffs::sprintf_;Modules\BugFixes.cpp
call fo::funcoffs::sprintf_;Modules\BugFixes.cpp
call fo::funcoffs::sprintf_;Modules\BugFixes.cpp
call fo::funcoffs::sprintf_;Modules\BugFixes.cpp
jmp fo::funcoffs::sprintf_;Modules\DamageMod.cpp
jmp fo::funcoffs::sprintf_;Modules\DamageMod.cpp
call fo::funcoffs::sprintf_;Modules\DebugEditor.cpp
call fo::funcoffs::sprintf_;Modules\Message.cpp
call fo::funcoffs::sprintf_;Modules\QuestList.cpp
void strncpy()call fo::funcoffs::strncpy_;Modules\Sound.cpp
jmp fo::funcoffs::strncpy_;Modules\Sound.cpp
void qsort(void* base, DWORD number, DWORD elSize, DWORD comp)jmp fo::funcoffs::qsort_;Modules\BugFixes.cpp
call fo::funcoffs::qsort_;Modules\HookScripts\CombatHs.cpp
void fprintf()call fo::funcoffs::fprintf_;Modules\DebugEditor.cpp
void nrealloc()call fo::funcoffs::nrealloc_ // eax = mem, edx = sizeModules\BugFixes.cpp
void sfShowFrame()0x44E949, 0x44E94A, 0x44E937, 0x4F5F40, 0x44E932, // from movies.cppCheckAddress.cpp
{0x4F5F40, 1},CheckAddress.cpp
SafeWrite8(0x4F5F40, CodeType::Ret); // blocking sfShowFrame_ for disabling the display of mve video framesModules\Movies.cpp
SafeWrite8(0x4F5F40, 0x53); // push ebxModules\Movies.cpp
void MVE_gfxSetSplit()if (illegalArg || (checkValidMemAddr && (args[0] < 0x410010 || args[0] > 0x4FCE34))) {Modules\Scripting\Handlers\Memory.cpp