# Reference funcs from Opennox
#ifndef NOX_PORT_GAME5
#define NOX_PORT_GAME5

#include "defs.h"

nox_thing_cond_animate_draw_4BC930
nox_things_cond_animate_draw_parse_44B560
nox_xxx_netDrawRays_49BDD0
nox_thing_drain_mana_draw_4B9B40
nox_thing_flag_draw_4B9500
nox_thing_door_draw_4BC9E0
nox_thing_pressure_plate_draw_4BBB30
nox_thing_vortex_draw_4B9F50
nox_thing_read_FLOR_411540
nox_thing_static_draw_4BCC20
nox_thing_animate_draw_4BBD60
nox_thing_armor_draw_4B96D0
nox_thing_armor_animate_draw_4B9770
nox_thing_summon_effect_draw_4B7D00
nox_thing_harpoon_draw_4B64A0
nox_thing_harpoon_rope_draw_4B61F0
nox_thing_plasma_draw_4BA980 // staff of oblivion
nox_thing_read_edge_485D40
nox_thing_undead_killer_draw_4B7A80
nox_thing_slave_draw_4BBD30
nox_thing_base_draw_4B95B0
nox_thing_weapon_draw_4B9690
nox_thing_cond_animate_draw_4BC930
nox_thing_bubble_draw_4B7540
nox_thing_monster_draw_4BBF90
nox_thing_lightning_draw_4BAC80
nox_thing_arrow_draw_4B7920
nox_thing_glyph_draw_4B9C70
nox_thing_black_powder_draw_4B9ED0
nox_thing_trigger_draw_4BB9D0
nox_thing_boulder_draw_4B9B50
nox_thing_spider_spit_draw_4B9D70
nox_thing_magic_draw_4B98A0
nox_thing_magic_missle_draw_4B99F0
nox_thing_magic_missle_tail_link_draw_4B5F30
nox_thing_magic_tail_link_draw_4B5E10
nox_thing_monster_gen_draw_4BC750
nox_thing_falling_sparks_draw_4B7740 // level up
nox_thing_player_waypoint_draw_4B9790
nox_thing_levelup_draw_4B7700
nox_thing_oblivion_up_draw_4B77D0
nox_thing_blue_rain_draw_4B7810
nox_client_screenParticleDraw_489700
charm_up_4CD150
cloud_4CE200

//dball
nox_xxx_updDrawAddRndSpark_4CDFA0
nox_xxx_updDrawDBallCharge_4CE0C0

drain_up_4CD690
fireball_4CCEA0
healup_4CD450

nox_xxx_updDrawManabombCharge_4CCAC0
nox_xxx_updDrawMagicMissile_4CD9E0
nox_xxx_updDrawMagic_4CDD80
nox_xxx_updDrawSparkleTrail_4CDBF0
nox_xxx_updDrawTeleportWake_4CD8D0
nox_xxx_updDrawVortexSource_4CC950

// glow draw
sub_4B6770
nox_thing_magic_sparkle_draw_4B6B00
nox_thing_pixie_draw_4B6E80
nox_thing_pixie_dust_draw_4B6FE0
nox_thing_blue_rain_spark_draw_4B7060
nox_thing_rain_orb_draw_4B7310
nox_thing_red_spark_draw_4B6A60
nox_thing_blue_spark_draw_4B6A80
nox_thing_cyan_spark_draw_4B6AA0
nox_thing_green_spark_draw_4B6AC0
nox_thing_yellow_spark_draw_4B6AE0
nox_thing_violet_spark_draw_4B6E40
nox_thing_death_ball_spark_draw_4B6E60
nox_thing_white_spark_draw_4B7040
nox_thing_particle_draw_4AFE80
nox_thing_glow_orb_draw_4B6B60
nox_thing_glow_orb_move_draw_4B6E20

// draw fx
sub_499490
sub_499520
nox_xxx_makePointFxCli_499610
nox_xxx_drawEnergyBolt_499710
sub_499950
nox_xxx_makeLightningParticles_4999D0
nox_xxx_draw_499E70
sub_49A150



char nox_xxx_mobActionRandomWalk_545020(int a1);
int sub_545090(int a1);
char nox_xxx_mobActionConfuse_545140(int a1);
char sub_545210(int a1);
char sub_545240(int a1, float* a2);
char sub_545300(int a1);
char sub_545340(int a1);
char sub_5453E0(int a1);
char nox_xxx_mobActionRetreat_545440(int a1);
int nox_xxx_monsterCanResumeAttack_545520(int a1);
int sub_545580(int a1);
int nox_xxx_monsterCanCast2_5455B0(int a1);
int* nox_xxx_mobRetreatCheckEdibles_5455E0(int a1);
int sub_5456B0(int a1);
int sub_5456C0(int a1);
void sub_5456D0(int a1);
long long sub_545790(int a1);
int sub_5457C0(int a1);
char nox_xxx_mobActionRoam_5457E0(int* a1);
void sub_545B00(int a1, int a2);
int sub_545B60(int a1, unsigned char a2);
int nox_xxx_monsterRoamDeadEnd_545BB0(int a1, int a2);
int sub_545C60(int a1, int a2, unsigned char a3);
int sub_545DA0(int a1);
int sub_545E60(nox_object_t* a1);
int* nox_xxx_mobActionGuard_546010(int a1);
int sub_546410(int a1);
int sub_546420(int a1);
char nox_xxx_mobActionEscort_546430(int* a1);
int nox_xxx_monsterGetObjEscortName_546600(int a1);
int nox_xxx_monsterLookAtDamager_5466B0(int a1);
int sub_5466F0(nox_object_t* a1);
void nox_xxx_mobAction_5469B0(nox_object_t* a1);
short nox_xxx_unitIsDangerous_547120(nox_object_t* a1, nox_object_t* a2);
void nox_xxx_monsterPopAttackActions_5471B0(int a1);
void nox_xxx_monsterMainAIFn_547210(nox_object_t* a1);
int nox_xxx_monsterCheckDodgeables_547C50(int a1);
int sub_547DB0(int a1, float2* a2);
int sub_547EE0(int a1, unsigned char a2);
int sub_547F10();
int sub_547F20(int a1, float* a2);
int nox_xxx_BuildWaypointPath_547F70(uint32_t* a1, int a2, uint32_t* a3, int a4);
void sub_548100(int2* a1, int a2);
void sub_5481C0(int a1);
void sub_548220(int* a1, float* a2);
int sub_548360(int a1, int a2);
int sub_5485B0(int a1, int a2);
void sub_548600(nox_object_t* a1, float a2, float a3);
void nox_xxx_collSysAddCollision_548630(int a1, unsigned int a2, float2* a3);
void nox_xxx_allocHitArray_5486D0();
void sub_548830(int a1);
void nox_xxx_collide_548740();
void sub_548860(int a1, short a2);
void sub_5488B0(int* a1, float* a2, int a3);
void sub_548B60();
void nox_xxx_script_forcedialog_548CD0(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_monsterLoadStrikeFn_549040(int a1, char* a2);
int nox_xxx_monsterLoadDieFn_5490E0(int a1, char* a2);
int nox_xxx_monsterLoadDeadFn_549180(int a1, char* a2);
int nox_xxx_strikeOgre_549220(float a1);
void sub_549270(int a1, int a2);
int nox_xxx_strikeMonsterDefault_549380(float a1);
int nox_xxx_monsterPickMeleeTarget_549440(int a3, int a2);
void sub_5494C0(float* a1, int a2);
int nox_xxx_strikeScorpion_5495B0(float a1);
int sub_549690(int a1, int a2);
int nox_xxx_strikeVileZombie_549700(float a1);
int nox_xxx_strikeStoneGolem_5497E0(float a1);
int nox_xxx_sendEquakeAfterGolem_549800(float a1);
void nox_xxx_monsterAttackAreaDamage_549860(int a1, float a2);
int nox_xxx_strikeMechGolem_549960(float a1);
int nox_xxx_strikeWasp_549980(float a1);
int nox_xxx_strikeGhost_549A60(float a1);
int nox_xxx_strikeBomber_549BB0();
int nox_xxx_strikeSpider_549BC0(float a1);
int nox_xxx_strikeSpittingSpider_549CA0(float a1);
int sub_549D80(int a1);
int sub_549E00(int a1);
int sub_549E70(int a1);
int sub_549E90(int a1);
int sub_549FA0(int a1);
int nox_bomberDead_54A150(nox_object_t* a1);
int sub_54A250(int a1);
int nox_xxx_monsterDeadTroll_54A270(int a1);
int sub_54A310(int a1);
void sub_54A390(int a1, char* a2, const char* a3, const char* a4, const char* a5, const char* a6, int a7);
void sub_54A4C0(int a1);
int sub_54A750(int a1);
int sub_54A7D0(int a1);
int sub_54A850(int a1);
int sub_54A890(int a1);
int sub_54A900(int a1);
int sub_54A950(int a1);
void sub_54AD50(int a1, int a2, int a3);
double sub_54A990(float2* a1, float a2, int a3, float2* a4);
nox_object_t* nox_xxx_findObjectAtCursor_54AF40(nox_object_t* a1);
void nox_xxx_playerCursorScanFn_54AFB0(int a1, float* a2);
int sub_54B2D0(int* a1, int a2, uint32_t* a3);
int sub_54B810(int a1, int a2, int* a3, int2* a4, int a5);
int sub_54BA60(int a1, int a2, int a3, int a4);
int sub_54BB20(int a1, int a2, int* a3, uint32_t* a4, int a5);
int sub_54BD90(int a1, int a2, int* a3, int* a4, int a5);
int sub_54BF20(int a1, int a2, int* a3, int* a4, int a5);
short nox_xxx_monsterAutoSpells_54C0C0(nox_object_t* a1p);
void nox_xxx_monsterCreateFn_54C480(nox_object_t* a1);
int nox_xxx_createWeapon_54C710(int a1);
uint32_t* sub_54C950(int a1);
int nox_xxx_createFnObelisk_54CA10(int a1);
void nox_xxx_createFnAnim_54CA50(int a1);
uint8_t* nox_xxx_createTrigger_54CA60(int a1);
uint32_t* nox_xxx_createMonsterGen_54CA90(int a1);
uint32_t* nox_xxx_createRewardMarker_54CAC0(int a1);
int nox_xxx_dieImpEgg_54CAE0(int a1);
void nox_xxx_diePolyp_54CB10(int a1);
void nox_xxx_diePotion_54CBB0(int a1);
void sub_54CBD0(int a1);
void sub_54CC40(int a1);
void sub_54CD30(int a1);
void sub_54CE00(int a1);
void sub_54CEE0(int a1);
char sub_54CFB0(int a1);
void sub_54D080(int a1);
int nox_xxx_diePlayer_54D2B0(int a1);
void nox_xxx_playerHandleElimDeath_54D7A0(int a1, int a2);
void nox_xxx_playerUpdateScore_54D980(int a1, int a2, int a3, int a4);
void nox_xxx_playerHandleKotrDeath_54DC40(int a1, int a2);
void nox_xxx_netNotifyPlayerDied_54DF00(int a1);
void nox_xxx_dieGlyph_54DF30(nox_object_t* a1);
void nox_xxx_dieBarrel_54DFA0(int a1);
void nox_xxx_dieCreateObject_54E010(int a1);
short nox_xxx_dieSpawnObject_54E070(int a1);
void nox_xxx_dieMarker_54E460(int a1);
void nox_xxx_dieBoulder_54E4B0(int a1);
int nox_xxx_dieGameBall_54E620(int a1);
void nox_xxx_dieMonsterGen_54E630(int a1);
int sub_54E6F0(int a1, int a2);
int sub_54E730(int a1, int a2);
int sub_54E810(int a1, float2* a2, int a3);
void sub_54E850(int a1, int a2);
char nox_xxx_updateMonsterGenerator_54E930(uint32_t* a1);
int nox_xxx_mobGeneratorPick_54EBA0(uint32_t* a1, float2* a2, int a4);
int nox_xxx_mgenSetCreaturePos_54ED50(int a1, float2* a2, int a3, int a4);
int sub_54EF00(float* a3);
void sub_54EF60(float* a1, int a2);
int sub_54EF90(float a1, int a2, int a3, int a4);
uint32_t* nox_xxx_mobGeneratorSpawn_54F070(int a1, int a2, int a3);
void nox_xxx_unitCreatureCopyUC_54F2B0(int a1, int a2);
void nox_xxx_updateHarpoon_54F380(nox_object_t* a1);
void nox_xxx_unitUpdateMover_54F740(int a1);
int nox_xxx_updateShootingTrap_54F9A0(int a1);
void nox_xxx_createArrowTrapProjectile_54FA80(int a1, int a2);
void sub_54FBB0(int a1);
int sub_54FBF0(int a3);
void nox_xxx_unitIsAttackReachable_54FC50(int a1, int a2);
void nox_xxx_collideTrigger_54FCD0(int a1, int a2);
float* nox_xxx_createSpark_54FD80(float a1, float a2, int a3, int a4, float a5, float a6, float a7, int a8);
void sub_54FEF0(int a2);
int sub_54FFC0(int2* a1, int a2);
int sub_550280(int a1, float a2, float a3, int a4, int a5, int a6, int a7);
int sub_5502F0(float2* a1, float a2, float a3, int a4, int a5, float2* a6, float2* a7);
int sub_550380(int a1, int a2, float2* a3);
int sub_550480(int a1);
void sub_5504B0(int a2);
int sub_550580(int2* a1, float* a2);
int sub_550760(int a1, float2* a2, float2* a3, float4* a4, float2* a5, float a6);
int sub_550A10(int a1, float2* a2, float2* a3, float4* a4, float2* a5, float a6);
char sub_550CB0(float2* a1, float2* a2);
void nox_xxx_collisionCheckCircleCircle_550D00(int a1, int a2);
void sub_550F80(float* a1, int a2);
void sub_551250(unsigned int a1, float* a2, int a3);
int sub_5516A0(float4* a1, float4* a2, float2* a3, int a4, int a6);
int sub_551780(float4* a1, float a2, float a3, float a4, float2* a5, int a6);
int sub_551870(float4* a1, float a2, float a3, float a4, float2* a5, int a6);
int sub_551960(float4* a1, float4* a2, float4* a3, float2* a4);
int sub_551A90(float2* a1, float4* a2);
void sub_551AE0(int a1, int a2, int a3);
void sub_551BF0();
void sub_551C40(int a1, int a2);

#endif // NOX_PORT_GAME5

#ifndef NOX_PORT_GAME5_2
#define NOX_PORT_GAME5_2

#include "defs.h"

int sub_42CC50(void** this);
int nox_xxx_j_inventoryNameSignInit_467460(void);
int nullsub_8(int a1, int a2);
void nullsub_9(uint32_t a1);
void nullsub_10(uint32_t a1);
void nullsub_22();
void nullsub_36();
void nullsub_35(uint32_t a1, uint32_t a2);
void nullsub_24(uint32_t a1);
void nox_xxx_j_allocHitArray_511840(void);
void nullsub_28(uint32_t a1);
void nullsub_29(void);
void nullsub_30(uint32_t a1);
unsigned int nox_server_makeServerInfoPacket_554040(const char* inBuf, int inSz, char* out);
unsigned int nox_xxx_net_getIP_554200(int a1);
char* sub_554230();
int sub_554240(int a1);
unsigned int sub_554290();
int sub_554300();
short sub_5545A0();
int nox_xxx_createSocketLocal_554B40(uint16_t hostshort);
int sub_554D10();
int sub_5550D0(int a1, uint16_t hostshort, char* buf);
void nullsub_31(uint32_t a1);
int sub_56F1C0();
int nox_xxx_protect_56F240();
int sub_56F250();
int nox_xxx_protectionCreateStructForInt_56F280(int a1, int a2);
int sub_56F2F0(uint32_t* a1);
uint32_t* sub_56F3B0();
int nox_xxx_protectionCreateInt_56F400(int a1);
int nox_xxx_protectionCreateStructForFloat_56F480(int a1, float a2);
int sub_56F4F0(int* a1);
int sub_56F510(int a1);
uint32_t* sub_56F590(int a1);
int nox_xxx_protectData_56F5C0();
uint32_t* sub_56F6F0(int a1);
void sub_56F720(int* a1, int* a2);
uint32_t* sub_56F780(int a1, int a2);
uint32_t* nox_xxx_playerResetProtectionCRC_56F7D0(int a1, int a2);
uint32_t* sub_56F820(int a1, unsigned char a2);
uint32_t* nox_xxx_protectPlayerHPMana_56F870(int a1, unsigned short a2);
uint32_t* sub_56F8C0(int a1, float a2);
uint32_t* sub_56F920(int a1, int a2);
uint32_t* nox_xxx_protectMana_56F9E0(int a1, short a2);
uint32_t* sub_56FA40(int a1, float a2);
int nox_xxx_protectionStringCRC_56FAC0(int* a1, unsigned int a2);
int nox_xxx_protectionStringCRCLen_56FAE0(int* a1, unsigned int a2);
int sub_56FB00(int* a1, unsigned int a2, int a3);
int sub_56FB60(nox_object_t* item);
int nox_xxx_protect_56FBF0(int a1, nox_object_t* item);
int nox_xxx_protect_56FC50(int a1, const nox_object_t* object);
int sub_56FCB0(int a1, int a2);
int nox_xxx_playerAwardSpellProtectionCRC_56FCE0(int a1, int a2, int a3);
int nox_xxx_playerApplyProtectionCRC_56FD50(int a1, void* a2, int a3);
double nox_xxx_unkDoubleSmth_56FE30();
void sub_56FF00(int a1);
int sub_56FF80(int a1, int a2);
unsigned int nox_xxx_netGetUnitCodeServ_578AC0(nox_object_t* item);
unsigned int nox_xxx_netGetUnitCodeCli_578B00(int a1);
int nox_xxx_netClearHighBit_578B30(short a1);
int nox_xxx_packetDynamicUnitCode_578B40(int a1);
unsigned int nox_xxx_netTestHighBit_578B70(unsigned int a1);
char* nox_xxx_GetEndgameDialog_578D80();
nox_waypoint_t* nox_xxx_waypointGetList_579860();
int nox_xxx_waypointNext_579870(int a1);
int sub_5798A0(int a1);
unsigned int nox_xxx_waypoint_5798C0();
char* sub_579A30();
nox_waypoint_t* nox_server_getWaypointById_579C40(int a1);
nox_waypoint_t* sub_579C60(unsigned int a1);
int sub_579CA0();
uint32_t* sub_579E70();
int sub_579EE0(nox_waypoint_t* a1, unsigned char a2);
int nox_xxx_playerCanTalkMB_57A160(int a1);
char* sub_57A1B0(short a1);
char sub_57A1E0(int* a1, const char* a2, int* a3, char a4, short a5);
int sub_57A3F0(char* a1, int a2, int a3, int a4);
void sub_57A4D0(wchar2_t* a1, int a2, int a3, int a4);
int sub_57A620(unsigned char a1, const wchar2_t** a2, int a3, int a4);
int sub_57A950(char* a1);
int sub_57A9F0(const char* a1, const char* a2);
char sub_57AAA0(const char* a1, char* a2, int* a3);
int* sub_57ADF0(int* a1);
int sub_57AE30(const char* a1);
int nox_xxx_playerCheckSpellClass_57AEA0(int a1, int a2);
int nox_xxx_get_57AF20();
void sub_57B0A0();
long long nox_xxx___Getcvt_57B180();
int sub_57B190(unsigned short a1, unsigned short a2);
float4 sub_57B350();
float4 nox_xxx_plrGetMaxVarsPtr_57B360(int a1);
unsigned char sub_57B370(int a1, int a2, int a3);
int nox_xxx_playerClassCanUseItem_57B3D0(nox_object_t* item, int8_t a2);
int nox_xxx_client_57B400(int a1);
int sub_57B450(nox_drawable* a1p);
char sub_57B500(int a1, int a2, char a3);
int nox_xxx_collideReflect_57B810(float* a1, int a2);
int nox_xxx_map_57B850(float2* a1, float* a2, float2* a3);
int sub_57B920(void* a1);
char nox_xxx_cliGenerateAlias_57B9A0(int a1, int a2, int a3, unsigned int a4);
int sub_57BA10(int a1, short a2, short a3, int a4);
void* nox_server_getFirstMapGroup_57C080();
int nox_server_getNextMapGroup_57C090(int a1);
void* nox_server_scriptGetGroup_57C0A0(int a1);
int nox_xxx_mathPointOnTheLine_57C8A0(float4* a1, float2* a2, float2* a3);

#endif // NOX_PORT_GAME5_2

#ifndef NOX_PORT_GAME4
#define NOX_PORT_GAME4

#include "defs.h"

int nox_xxx_XFerSpellReward_4F5F30(int* a1);
int nox_xxx_XFerAbilityReward_4F6240(int* a1);
int nox_xxx_XFerFieldGuide_4F6390(int* a1);
int nox_xxx_XFerWeapon_4F64A0(int a1);
int nox_xxx_XFerArmor_4F6860(int a1);
int nox_xxx_XFerAmmo_4F6B20(int* a1);
int nox_xxx_XFerTeam_4F6D20(int* a1);
int nox_xxx_XFerGold_4F6EC0(int a1);
int nox_xxx_XFerObelisk_4F6F60(int* a1);
int nox_xxx_XFerToxicCloud_4F70A0(int a1);
int nox_xxx_XFerMonsterGen_4F7130(int* a1);
int nox_xxx_XFerRewardMarker_4F74D0(int* a1);
int nox_xxx_equipedItemByCode_4F7920(int a1, int a2);
void sub_4F7950(nox_object_t* a1);
void nox_xxx_playerSetCustomWP_4F79A0(int a1, int a2, int a3);
int nox_xxx_playerConfusedGetDirection_4F7A40(nox_object_t* a1);
void nox_xxx_mapFindPlayerStart_4F7AB0(float2* a1, nox_object_t* a2p);
int sub_4F7CE0(int a1, int a2);
int nox_xxx_playerSubStamina_4F7D30(nox_object_t* a1, int a2);
void sub_4F7DB0(int a1, char a2);
int nox_xxx_checkWinkFlags_4F7DF0(nox_object_t* a1);
int nox_xxx_weaponGetStaminaByType_4F7E80(int a1);
short nox_xxx_playerRespawn_4F7EF0(nox_object_t* a1);
int sub_4F80C0(int a1, float2* a3);
void nox_xxx_updatePlayer_4F8100(nox_object_t* a1);
int sub_4F9A80(nox_object_t* a1);
int sub_4F9AB0(nox_object_t* a1);
int nox_xxx_playerCanMove_4F9BC0(nox_object_t* a1);
int nox_xxx_playerCanAttack_4F9C40(nox_object_t* a1);
void nox_xxx_playerInputAttack_4F9C70(nox_object_t* a1);
int nox_xxx_playerAimsAtEnemy_4F9DC0(int a1);
int sub_4F9E10(nox_object_t* a1);
void nox_xxx_animPlayerGetFrameRange_4F9F90(int a1, int* a2, int* a3);
int nox_xxx_unitGetStrength_4F9FD0(int a1);
int nox_xxx_playerSetState_4FA020(nox_object_t* a1, int a2);
int sub_4FA280(int a1);
int nox_common_mapPlrActionToStateId_4FA2B0(nox_object_t* a1);
int nox_xxx_checkInversionEffect_4FA4F0(int a1, int a2);
uint32_t* nox_xxx_playerAddGold_4FA590(int a1, int a2);
uint32_t* nox_xxx_playerSubGold_4FA5D0(int a1, unsigned int a2);
void nox_object_setGold_4FA620(nox_object_t* a1, int a2);
int nox_xxx_playerGetGold_4FA6B0(int a1);
int nox_object_getGold_4FA6D0(nox_object_t* a1);
int nox_xxx_playerBotCreate_4FA700(nox_object_t* a1);
char nox_xxx_mobMorphFromPlayer_4FAAC0(uint32_t* a1);
char nox_xxx_mobMorphToPlayer_4FAAF0(uint32_t* a1);
int nox_xxx_updatePlayerMonsterBot_4FAB20(uint32_t* a1);
char nox_xxx_monsterActionToPlrState_4FABC0(int a1);
int nox_xxx_respawnPlayerBot_4FAC70(int a1);
int nox_xxx_netSendRewardNotify_4FAD50(int a1, int a2, int a3, char a4);
void sub_4FADD0(int a1, const char* a2, char a3);
int sub_4FB000(int a1, int a2);
int sub_4FB050(int a1, int a2, int* a3);
int nox_xxx_playerDoSchedSpell_4FB0E0(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_playerDoSchedSpellQueue_4FB1D0(nox_object_t* a1, nox_object_t* a2);
void nox_xxx_playerExecuteAbil_4FBB70(nox_object_t* a1, int a2);
int sub_4FBE60(void* a1, int a2);
void sub_4FBEA0(void* a1, int a2, int a3);
int sub_4FC030(nox_object_t* a1, int a2);
void sub_4FC070(nox_object_t* a1, int a2, int a3);
void sub_4FC0B0(nox_object_t* a1, int a2);
void nox_xxx_playerCancelAbils_4FC180(nox_object_t* a1);
int nox_common_playerIsAbilityActive_4FC250(nox_object_t* a1, int a2);
void sub_4FC300(nox_object_t* a1, int a2);
int nox_xxx_probablyWarcryCheck_4FC3E0(nox_object_t* a1, int a2);
void sub_4FC440(nox_object_t* a1, int a2);
void sub_4FC670(int a1);
int sub_4FC960(int a1, char a2);
int nox_xxx_Fn_4FCAC0(int a1, int a2);
void nox_xxx_spellCastByBook_4FCB80();
int sub_4FCEB0(int a1);
int nox_xxx_spellCheckSmth_4FCEF0(int a1, int* a2, int a3);
int sub_4FCF90(nox_object_t* a1, int a2, int a3);
unsigned short sub_4FD030(int a1, short a2);
void nox_xxx_teleportAllPixies_4FD090(nox_object_t* a1);
int sub_4FD0E0(nox_object_t* a1, int a2);
int nox_xxx_checkPlrCantCastSpell_4FD150(nox_object_t* a1, int a2, int a3);
int nox_xxx_spellAccept_4FD400(int a1, nox_object_t* a2, nox_object_t* a3p, nox_object_t* a4p, void* a5p, int a6);
int nox_xxx_gameCaptureMagic_4FDC10(int a1, nox_object_t* a2);
int nox_xxx_castSpellByUser_4FDD20(int a1, nox_object_t* a2, void* a3);
uint32_t* nox_xxx_createSpellFly_4FDDA0(nox_object_t* a1, nox_object_t* a2, int a3);
void nox_xxx_collide_4FDF90(int a1, int a2);
int nox_xxx_spellGetPhoneme_4FE1C0(int a1, char a2);
int nox_xxx_spellByBookInsert_4FE340(int a1, int* a2, int a3, int a4, int a5);
void nox_xxx_spell_4FE680(nox_object_t* a1, float a2);
int nox_xxx_spellGetPower_4FE7B0(int a1, nox_object_t* a2);
void sub_4FE8A0(int a1);
void* nox_xxx_spellCastedFirst_4FE930();
void* nox_xxx_spellCastedNext_4FE940(void* a1);
void sub_4FE980(void* a1);
void nox_xxx_spellCancelSpellDo_4FE9D0(void* a1);
int sub_4FEA70(int a1, float2* a2);
int nox_xxx_playerCancelSpells_4FEAE0(nox_object_t* a1);
void nox_xxx_spellCancelDurSpell_4FEB10(int a1, nox_object_t* a2);
void sub_4FEB60(int a1, int a2);
void nox_xxx_cancelAllSpells_4FEE90(nox_object_t* a1);
void nox_xxx_netStopRaySpell_4FEF90(void* a1, nox_object_t* a2);
char* nox_xxx_netStartDurationRaySpell_4FF130(int a1);
int sub_4FF2D0(int a1, int a2);
int nox_xxx_testUnitBuffs_4FF350(nox_object_t* unit, char buff);
void nox_xxx_buffApplyTo_4FF380(nox_object_t* unit, int buff, short dur, char power);
int nox_xxx_unitGetBuffTimer_4FF550(nox_object_t* unit, int buff);
char nox_xxx_buffGetPower_4FF570(nox_object_t* unit, int buff);
void nox_xxx_unitClearBuffs_4FF580(nox_object_t* unit);
int nox_xxx_spellBuffOff_4FF5B0(nox_object_t* a1, int a2);
void nox_xxx_updateUnitBuffs_4FF620(nox_object_t* a1);
char* nox_xxx_journalQuestSet_500540(char* a1, int a2);
char* nox_xxx_scriptGetJournal_5005E0(char* a1);
char* nox_xxx_journalQuestSetBool_5006B0(char* a1, int a2);
int sub_500750(char* a1);
double sub_500770(char* a1);
void sub_500790(void* lpMem);
char* sub_5007E0(char* a1);
unsigned int sub_5009B0(char* a1);
int sub_500A60();
int sub_500B70();
int nox_xxx_orderUnitLocal_500C70(int owner, int orderType);
int sub_500CA0(int a1, int a2);
int nox_xxx_creatureIsMonitored_500CC0(nox_object_t* a1, nox_object_t* a2);
bool nox_xxx_checkSummonedCreaturesLimit_500D70(nox_object_t* a1, int a2);
int nox_xxx_summonStart_500DA0(int a1);
int sub_500F40(int a1, float a2);
int nox_xxx_summonFinish_5010D0(int a1);
void nox_xxx_summonCancel_5011C0(int a1);
int nox_xxx_charmCreature1_5011F0(int* a1);
int nox_xxx_charmCreatureFinish_5013E0(int* a1);
int nox_xxx_charmCreature2_501690(int a1);
void nox_xxx_banishUnit_5017F0(int unit);
int nox_xxx_getSevenDwords3_501940(int a1);
void nox_xxx_aud_501960(int a1, nox_object_t* a2, int a3, int a4);
void nox_xxx_audCreate_501A30(int a1, float2* a2, int a3, int a4);
void nox_xxx_gameSetAudioFadeoutMb_501AC0(int a1);
char sub_501C00(float* a1, nox_object_t* a2);
void nox_xxx_netUpdateRemotePlr_501CA0(nox_object_t* a1);
int nox_xxx_mapgenMakeScript_502790(FILE* a1, char* a2);
void nox_xxx_mapReset_5028E0();
int sub_5029A0(char* a1);
int sub_5029F0(int a1);
int sub_502A20();
int sub_502A50(char* a1);
int sub_502AB0(char* a1);
int sub_502B10();
int sub_502D70(int a1);
FILE* sub_502DA0(char* a1);
FILE* sub_502DF0();
FILE* sub_502E10(int a1);
double sub_502E70(int a1);
double sub_502EA0(int a1);
int nox_xxx_mapgenSaveMap_503830(int a1);
int sub_503B30(float2* a1);
int sub_503EC0(int a1, float* a2);
void nox_xxx_free_503F40();
uint32_t* nox_xxx_tileAllocTileInCoordList_5040A0(int a1, int a2, float a3);
int nox_xxx_tileInit_504150(int a1, int a2);
uint32_t* sub_504290(char a1, char a2);
uint32_t* nox_xxx_cliWallGet_5042F0(int a1, int a2);
int sub_504330(int a1, int a2);
uint32_t* sub_5044B0(int a1, float a2, float a3);
int sub_504560(int a1, int a2);
void sub_504600(char* a1, unsigned int a2, unsigned char a3);
int sub_5046A0(uint32_t* a1, unsigned int a2);
int sub_504720(unsigned int a1, unsigned int a2);
uint32_t* nox_xxx_unitAddToList_5048A0(int a1);
int sub_504910(int a1, int a2);
int sub_504980();
int sub_5049C0(int a1);
void* sub_5049D0();
int sub_5049E0(int a1);
int sub_504A10(int a1);
void* sub_505060();
int nox_server_mapRWMapIntro_505080();
int nox_server_mapRWGroupData_505C30();
int nox_server_mapRWWaypoints_506260(uint32_t* a1);
int nox_xxx_allocVoteArray_5066D0();
int sub_506720();
int sub_506740(nox_object_t* a1);
void sub_5067B0(int a1);
int sub_506810(int a1);
int nox_xxx_netSendVote_506840(int a1);
char sub_506870(int a1, int a2, wchar2_t* a3);
char sub_5068E0(int a1, int a2, wchar2_t* a3);
uint32_t* sub_506A20(int a1, int a2);
int nox_xxx_voteAddMB_506AD0(int a1);
uint32_t* sub_506B00(int a1, int a2);
uint32_t* sub_506B80(int a1, int a2, wchar2_t* a3);
void sub_506C90(int a1, int a2, wchar2_t* a3);
void sub_506D00(int a1, wchar2_t* a2);
void sub_506DE0(int a1);
void sub_506E50(int a1, wchar2_t* a2);
void sub_506F80(int a1);
int sub_507000(int a1);
void sub_507090(int a1);
void sub_507100(int a1);
int sub_507190(int a1, char a2);
int sub_5071C0();
void sub_509120(uint32_t* a1, int a2, const char* a3);
int sub_5095E0();
int sub_5096F0();

void nox_server_scriptExecuteFnForEachGroupObj_502670(unsigned char* groupPtr, int expectedType, void (*a3)(int, int),
													  int a4);

#endif // NOX_PORT_GAME4
#ifndef NOX_PORT_GAME4_1
#define NOX_PORT_GAME4_1

#include "defs.h"

int sub_5098A0();
int sub_5099B0();
void nox_server_checkVictory_509A60();
void sub_509C30(nox_playerInfo* pl);
int* sub_509CB0();
int sub_509CF0(const char* a1, char a2, int a3);
int sub_509D80(int a1);
int nox_xxx_xferDirectionToAngle_509E00(uint32_t* a1);
int nox_xxx_xferIndexedDirection_509E20(int a1, int2* a2);
int nox_xxx_mathDirection4ToAngle_509E90(int a1);
int nox_xxx_math_509EA0(int a1);
int nox_xxx_math_509ED0(float2* a1);
void nox_xxx_utilNormalizeVector_509F20(float2* a1);
int sub_509FF0(int a1);
int nox_xxx_monsterActionIsCondition_50A010(int a1);
int nox_xxx_mobActionGet_50A020(int a1);
int sub_50A040(int a1);
int nox_xxx_monsterIsActionScheduled_50A090(int a1, int a2);
int nox_xxx_checkMobAction_50A0D0(nox_object_t* a1, int a2);
int nox_xxx_monsterPopAction_50A160(nox_object_t* a1p);
#define nox_xxx_monsterPushAction_50A260(obj, a2) nox_xxx_monsterPushAction_50A260_impl(obj, a2, __FILE__, __LINE__)
void* nox_xxx_monsterPushAction_50A260_impl(nox_object_t* a1p, int a2, char* file, int line);
int* nox_xxx_monsterAction_50A360(int a1, int a2);
void nox_xxx_monsterClearActionStack_50A3A0(nox_object_t* a1);
int nox_xxx_monsterCallDieFn_50A3D0(uint32_t* a1);
void nox_xxx_unitUpdateMonster_50A5C0(nox_object_t* a1);
char nox_xxx_updateNPCAnimData_50A850(nox_object_t* a1);
int nox_xxx_mobAction_50A910(nox_object_t* a1);
int nox_xxx_minimapFirstMonster_50AAE0();
int nox_xxx_minimapNextMonster_50AB10();
int nox_xxx_mapTraceObstacles_50B580(nox_object_t* a1, float4* a3);
void sub_50CAC0(int a1, int a2);
nox_waypoint_t* sub_50CB20(nox_object_t* a1, float2* a2);
void nox_xxx_creatureSetDetailedPath_50D220(nox_object_t* a1, float2* a2);
int sub_50D2A0(int a1, int a2);
int sub_50D2E0(int a1);
int nox_xxx_creatureActuallyMove_50D3B0(float* a1);
int nox_xxx_creatureSetMovePath_50D5A0(int a1);
int nox_xxx_allocMonsterRelatedArrays_50D780();
void sub_50D7E0();
void sub_50D820();
void sub_50D8D0();
int sub_50D960();
int sub_50DE10();
uint32_t* sub_50DE60(int a1);
int sub_50DE80(int a1, float* a2);
void sub_50DFB0(float* a1, int a2);
int sub_50E030(int a1, uint32_t* a2);
int sub_50E110(int a1);
void sub_50E140(int a1);
int sub_50E1B0(int a1);
void sub_50E1E0(int object);
void sub_50E210(nox_object_t* a1);
int nox_xxx_registerShopClasses_50E2A0();
int nox_xxx_deleteShopInventories_50E300();
int sub_50E360();
int nox_xxx_shopGetItemCost_50E3D0(int a1, int a2, float a3);
int sub_50E820(int a1, int a2);
uint32_t* nox_xxx_createShopStruct_50E870();
void nox_xxx_loadShopItems_50E970(int a1);
float* nox_xxx_addItemToShopSession_50EE00(int a1, float a2);
int sub_50EEC0(uint32_t* a1);
int sub_50F2B0(int a1, uint32_t* a2);
void sub_50F3A0(uint32_t* a1);
int sub_50F450(int a1);
int sub_50F490(uint32_t* a1, int a2);
void nox_xxx_shopExit_50F4C0(uint32_t* a1);
int nox_xxx_sendEndTradeMsg_50F560(int a1);
void nox_xxx_tradeAccept_50F5A0(int a1, int a2);
int sub_50F6B0(int a1);
int sub_50F6E0(int a1);
int sub_50F720(int a1, uint32_t* a2);
void sub_50F790(int a1, int a2, int* a3);
uint32_t* sub_50F7F0(int a1, int a2);
int nox_xxx_tradeP2PUpdStuff_50FA00(int a1, uint32_t* a2);
uint32_t* sub_50FB90(uint32_t* a1);
int sub_50FD20(uint32_t* a1, int a2);
int nox_xxx_tradeP2PAddOfferMB_50FE20(int a1, int a2);
int sub_50FF90(int a1, int a2, int a3);
uint32_t* sub_50FFE0(uint32_t* a1, int a2);
void sub_510000(int a1);
int nox_xxx_getSomeShopData_5103A0(int a1, int a2);
int sub_5103F0(int a1, int a2);
uint32_t* sub_5108D0(int a1, int a2, int a3);
uint32_t* sub_510AE0(int* a1, int a2, uint32_t* a3);
void sub_510D10(int* a1, int a2, int a3, unsigned int a4);
void nox_xxx_shopCancelSession_510DC0(void* a1);
int sub_510DE0(int a1, int a2);
void sub_510E20(int a1);
void sub_510E50();
signed int nox_xxx_updateSentryGlobe_510E60(int a1);
uint32_t* nox_xxx_sentryUpdateList_510FD0(uint32_t* a1);
void nox_xxx_sentry_511020(int a1, int a2);
void sub_511100(int a1);
int sub_511250(int a1, float* a2);
void nox_xxx_updateSprings_5113A0();
int nox_xxx_unitSetDecayTime_511660(nox_object_t* a1, int a2);
int nox_xxx_decay_5116F0(nox_object_t* item);
void nox_xxx_decay_511750();
int nox_xxx_decayDestroy_5117B0();
char sub_5117F0(nox_object_t* a1);
void nox_xxx_unit_511810(nox_object_t* a1);
int nox_xxx_updateObjectsVelocity_5118A0(float step);
nox_object_t* nox_xxx_script_511C50(int a1);
int sub_511CB0(uint32_t* a1, int a2);
int sub_511CE0(uint32_t* a1, int a2);
int sub_511D20();
int nox_xxx_scriptPrepareFoundUnit_511D70(nox_object_t* obj);
int sub_511DC0();
int sub_511DE0(nox_object_t* a1);
int sub_511E20();
float* nox_xxx_monsterLookAt_5125A0(nox_object_t* obj, int a2);
void nox_xxx_monsterWalkTo_514110(nox_object_t* obj, float x, float y);
void nox_xxx_monsterGoPatrol_515680(nox_object_t* a1, void* a2);
void nox_xxx_unitHunt_5157A0(nox_object_t* obj);
void nox_xxx_unitIdle_515820(nox_object_t* obj);
void nox_xxx_unitSetFollow_5158C0(nox_object_t* obj1, nox_object_t* obj2);
int sub_515C80(int a1, uint8_t* a2);
void nox_xxx_mobSetFightTarg_515D30(nox_object_t* a1, nox_object_t* a2);
void sub_516090(nox_object_t* a1, uint32_t a2);
unsigned int sub_516D00(nox_object_t* a1);
int nox_xxx_allocPendingOwnsArray_516EE0();
int sub_516F10();
void sub_516F30();
uint32_t* sub_516F90(int a1, int a2);
void sub_516FC0();
int nox_xxx_readStr_517090(FILE* a1, uint8_t* a2);
int sub_517140(FILE* a1);
int nox_xxx_servParseMonsterDef_517170(FILE* a1, const char* a2);
uint32_t* nox_xxx_monsterListFree_5174F0();
int nox_xxx_monsterList_517520();
void* nox_xxx_monsterDefByTT_517560(int a1);
int sub_517590(float a1, float a2);
void nox_xxx_moveUpdateSpecial_517970(nox_object_t* unit);
void nox_xxx_unitsGetInCircle_517F90(float2* a1, float a2, void* fnc, void* data);
int sub_518040(int arg0, float a2, int arg8, int a4);
void sub_5180B0(int a1, int a2);
void nox_xxx_getMissilesInCircle_518170(float2* a1, float a2, void* a3, nox_object_t* a4);
nox_waypoint_t* sub_518740(float2* a1, unsigned char a2);
int sub_518770();
int nox_xxx_netSendPhantomPlrMb_5187E0(int a1, int a2);
int nox_xxx_netSendSimpleObj_5188A0(int a1, int a2);
int nox_xxx_netSendComplexObject_518960(int a1, uint32_t* a2, int a3);
int nox_xxx_netSpriteUpdate_518AE0(int a1, int a2, uint32_t* a3);
int nox_xxx_netPlayerObjSend_518C30(nox_object_t* a1, nox_object_t* a2, int a3, signed int a4);
char nox_xxx_netSendObjects2Plr_519410(nox_object_t* a1, nox_object_t* a2);
int sub_519710(void* a1);
int sub_51A500(int a1);
char* sub_51A550();
void nox_xxx_spawnHecubahQuest_51A5A0(int* a1);
void nox_xxx_spawnNecroQuest_51A7A0(int* a1);
int nox_xxx_getQuestStage_51A930();
int sub_51A940(int a1);
int sub_51A950();
void nox_xxx_playerResetControlBuffer_51AC30(int a1);
void sub_51B810(nox_object_t* a1);
char sub_51B860(int a1);
void nox_xxx_updateFallLogic_51B870(nox_object_t* a1);
void sub_51D0E0();
int sub_51D0F0(char a1);
int sub_51D100(int a1);
uint32_t* sub_51D120(float* a1);
float* sub_51D1A0(float2* a1);
int sub_51D2C0(int a1, int a2);
int sub_51D300(int a1, int a2, char a3);
float2* sub_51D3F0(float2* a1, float2* a2);
int nox_xxx_tileGetDefByName_51D4D0(char* a1);
int nox_xxx_tileCheckImage_51D540(int a1);
int nox_xxx_tileCheckImageVari_51D570(int a1);
int nox_xxx_tile_51D5C0(int a1);
float* sub_51D5E0(float* a1);
int sub_51D8F0(float2* a1);
int sub_51D9C0(int a1, int a2, int a3, int a4, int a5);
void sub_517B70(float2* a1, void* a2, void* a3);
void nox_xxx_getUnitsInRect_517C10(float4* a1, void* fnc, void* a3);
void nox_xxx_getUnitsInRectAdv_517ED0(float4* a1, void* a2, void* a3);

#endif // NOX_PORT_GAME4_1
#ifndef NOX_PORT_GAME4_2
#define NOX_PORT_GAME4_2

#include "defs.h"

int sub_51DA70(int a1, int a2, int a3, int a4, int a5);
void sub_51DD50(int a1, int a2, int a3, int a4);
int sub_51DE30(uint32_t* a1, uint32_t* a2, uint32_t* a3);
int nox_xxx_mapCountWallsMB_51DEA0(int a1);
int sub_51DED0();
int nox_xxx_xfer_saveObj_51DF90(nox_object_t* a1);
int nox_xxx_mapSaveMap_51E010(char* a1, int a2);
int nox_xxx_map_51E140();
int nox_xxx_mapGenSpellIdByName_51E1D0(const char* a1);
int nox_xxx_mapGenReadTheme_51E260(int* a1, int a2);
int nox_xxx_mapGenReadLine_51E540(FILE* a1, uint8_t* a2);
int sub_51E570(FILE* a1, uint8_t* a2);
int sub_51E630(FILE* a1);
int sub_51E670(FILE* a1);
int sub_51E720(FILE* a1);
int sub_51E780(FILE* a1);
int sub_51E800(int a1, uint32_t* a2);
int sub_51EAF0(int a1, uint32_t* a2);
int nox_xxx_genReadAlgData_51EBB0(int a1, FILE* a2);
int nox_xxx_genReadSpellSet_51EFB0(int a1, FILE* a2);
int nox_xxx_genReadWeaponSet_51F030(int a1, FILE* a2);
void nox_xxx_mapGenFreeStr_51F1F0(void* lpMem);
int sub_51F230(int a1, FILE* a2);
int nox_xxx_genReadArmorSet_51F640(int a1, FILE* a2);
int nox_xxx_genReadExit_51F800(int a1, FILE* a2);
int nox_xxx_genReadDecor_51F9F0(uint32_t* a1, FILE* a2);
char* nox_xxx_genDecorReadWallFloor_51FE00(int a1, FILE* a2);
int sub_51FEC0(int a1, int a2, FILE* a3);
int nox_xxx_genDecorReadDecorSet_51FFA0(int a1, FILE* a2);
uint32_t* nox_xxx_gen_520380(FILE* a1);
uint32_t* nox_xxx_gen_5205B0(FILE* a1);
int nox_xxx_genDecorReadCopy_520660(uint32_t* a1, const char* a2, FILE* a3);
int nox_xxx_genDecorReadOccurConstraint_520810(int a1, FILE* a2);
int nox_xxx_genDecorReadOccurLimit_5208D0(int a1, FILE* a2);
int nox_xxx_genDecorReadFrequency_520910(int a1, FILE* a2);
int nox_xxx_genDecorReadRoomSizeCon_5209F0(int a1, FILE* a2);
int nox_xxx_genDecorReadDoor_520A90(int a1, FILE* a2);
int nox_xxx_genDecorReadDoubleDoor_520AB0(int a1, FILE* a2);
int nox_xxx_mapgenCheckSettings_520AD0(int* a1);
int nox_xxx_genReadPrefab_520BF0(int a1, FILE* a2);
char* sub_520CE0(int a1, FILE* a2);
uint32_t* sub_520D50(uint32_t* a1);
long long nox_xxx_mapGenRoundFloatToPtr_520DF0(float2* a1, uint32_t* a2);
int sub_520E60(int2* a1);
int sub_520EA0(int a1);
void sub_520F80();
int sub_521100(int a1);
int sub_521180(int a1);
int sub_521200(int a1);
int sub_521290(int2* a1);
int sub_5212B0(int a1, uint32_t* a2);
int nox_xxx_mapgenAllocBuffer_5213E0();
void nox_xxx_mapgenFreeBuffer_521400();
void* nox_xxx_mapGenGetTopRoom_521710();
int sub_521720(int a1);
int nox_xxx_mapGenAddNewRoom_521730(uint32_t* a1);
int sub_521760(int a1);
int sub_5217A0(int a1, int a2);
int sub_521820(int a1, int a2);
int nox_xxx_mapGenUpdateRoomRect_521850(int a1);
int nox_xxx_mapGenSetRoomPos_521880(uint32_t* a1, float2* a2);
int sub_5218B0(int a1, int a2);
int sub_521900(int a1, int a2, int a3);
float* nox_xxx_mapGenMakeRoomStruct_521940(int a1, int a2);
float* nox_xxx_mapGenPrepareRoom_521990(int a1);
void sub_521A10(void* lpMem);
uint32_t* nox_xxx_mapGenFreeTopRoom_521A40();
int sub_521A70(int a1, int a2, int a3);
int sub_521AA0(uint32_t* a1, int a2);
double sub_521B00(int a1, int a2);
double sub_521B30(int a1, int a2);
double sub_521B60(int a1, int a2);
double sub_521B90(int a1, int a2);
float* sub_521BC0(int a1, float2* a2, float a3, float a4);
uint32_t* sub_521C10(int a1);
int nox_xxx_mapgen_521C60(int a1, int a2);
int sub_521CB0(int a1, int a2, int a3, int a4);
int sub_521EB0(float* a1, float* a2);
int sub_521F10(int a1, float* a2);
void nox_xxx_mapgen_521FE0(int a1, int a2, uint32_t* a3);
uint32_t* nox_xxx_mapGenMakeSpellbook_5220E0(int a1, const char* a2);
uint32_t* nox_xxx_mapGenMakeEnchantedItem_5221A0(char* a1, char* a2, int a3);
uint32_t* sub_522300(int a1, uint32_t* a2);
void nox_xxx_mapgen_522340(int a1, int a2);
void nox_xxx_mapgen_522370(int a1, int a2, int* a3);
float* nox_xxx_mapgen_5224B0(int a1, int a2, int a3);
int sub_5226D0(int a1, float a2, int a3);
int sub_5227B0(int a1, float* a2);
int nox_xxx_mapGenMakeMonsterInRoom_522810(float* a1, char* a2);
float* sub_522C80(float* a1);
char sub_522CA0(int a1, float* a2);
float* sub_522D30(int a1);
unsigned char* nox_xxx_mapGenTryNextRoom_522F40(uint32_t* a1);
int nox_xxx_netSendPointFx_522FF0(char a1, float2* a2);
int nox_xxx_netSendFxAllCli_523030(float2* a1, const void* a2, int a3);
int sub_523150(char a1, char a2, float* a3);
int nox_xxx_netSparkExplosionFx_5231B0(float* a1, char a2);
void nox_xxx_sendGeneratorBreakFX_523200(float* a1, char a2);
int nox_xxx_netSendVampFx_523270(char a1, short* a2, short a3);
int nox_xxx_netClientPredictLinear_523530(int a1);
void nox_xxx_mapGenSetFlags_5235F0(char a1);
int nox_xxx_netSendShieldFx_523670(int a1, float* a2);
int nox_xxx_sendSummonStartFX_5236F0(short a1, float* a2, char a3, short a4, short a5);
int nox_xxx_sendSummonCancelFX_523760(short a1);
void nox_xxx_sendGeneratorSpawnFX_523830(int4* a1, short a2);
void nox_xxx_sendArrowTrapFX_5238A0(float* a1, char a2);
int nox_xxx_mapGenCheckRoomType_5238F0(int* a1);
int sub_523920(int a1);
int sub_523960(int a1);
int sub_523970(int a1);
int sub_5239B0(int a1);
int sub_523A10(int a1, float* a2);
int sub_523C30(int a1, int a2);
int sub_523CB0(int a1, int a2);
float* sub_523D30(float* a1, float* a2);
float* sub_523E30(int a1, int a2, int a3);
float* nox_xxx_mapGenMakeHall_523EC0(int a1, int a2, int a3);
int sub_524070(int a1, int a2);
int sub_524090(int a1, int* a2);
int nox_xxx_mapGenDecorChkConstaint_5241C0(int a1, int a2);
int nox_xxx_mapGenChkDecorFillsRoom_5241F0(int a1, int a2);
char nox_xxx_mapGenDecorChkLimit_524220(int* a1, int a2);
int nox_xxx_mapGenMakeRooms_524310(int a1);
int sub_5244D0(int a1);
int sub_524500(float2* a1, int a2);
int sub_524550(int* a1, int a2);
float* sub_5245A0(int a1, float* a2, int a3, int a4);
float* sub_524610(int a1, float* a2, int a3);
int sub_524660(float a1, float a2);
int nox_xxx_gen_524680(int a1, int a2, int a3);
int sub_524950(int a1, int a2, float* a3, int* a4);
int sub_5249C0(int a1, int a2, float* a3, int* a4);
void sub_524B50(int a1, int a2, float* a3, int* a4);
void nox_xxx_gen_524E00(int a1, int a2);
int sub_524FB0(int a1, int a2, int a3);
float2* sub_525330(float2* a1, int a2);
float2* sub_525370(float2* a1, int a2);
int sub_5253B0(float* a1);
void nox_xxx_mapgen_525510(int a1, int a2);
void nox_xxx_mapgen_525570(int a1, int a2, int a3, int a4);
int nox_xxx_mapgen_525690(int a1, float2* a2, int a3);
int nox_xxx_mapgen_525740(int a1, float2* a2, int a3);
int nox_xxx_mapgen_525830(int a1, float2* a2, int a3);
int nox_xxx_mapgen_5258E0(int a1, float2* a2, int a3);
void sub_5259F0(int a1, int a2, float a3);
float* sub_525AF0(int a1);
void sub_525BF0(int a1);
float* sub_525C90();
int nox_xxx_mapGen_InPrefab1_525D20(int a1);
void sub_525DF0(float a1);
int nox_xxx_mapGenPrefabMkRoom_526100(int a1, int a2);
long long sub_526260(int a1, float* a2);
int sub_5262F0(int a1, int a2);
int sub_526550(int a1, int a2);
int nox_xxx_mapGen_InPrefab2_5266F0(int a1);
int nox_xxx_mapGenPlacePrefabs_526830(int a1);
int sub_5268F0(const char* a1);
char* sub_526950();
char* sub_526AA0(int a1);
void nox_xxx_mapGenSetRngSeed_526AB0(unsigned int a1);
signed int nox_xxx_mapGenRandFunc_526AC0(int a1, signed int a2);
int nox_xxx_mapGenRandFunc2_526B00(int a1, signed int a2);
double sub_526BC0(float a1, float a2);
int sub_526C40(int a1);
int sub_526C80(int a1);
int sub_526D50(int a1);
int sub_526DD0(float2* a1, int* a2);
int sub_526E60(float* a1);
int sub_527030(float2* a1);
int sub_527380(float* a1);
int sub_527450(uint32_t* a1);
int nox_xxx_mapGenGetObjID_527940(char* a1);
float* nox_xxx_mapGenPlaceObj_5279B0(float2* a1);
float* nox_xxx_mapGenMoveObject_527A10(float* a1, float2* a2);
int nox_xxx_mapGenOrientObj_527C60(int a1, int a2);
int nox_xxx_mapGenFinishSpellbook_527DB0(int a1, char a2);
int nox_xxx_netUpdateObjectSpecial_527E50(nox_object_t* a1, nox_object_t* a2);
short sub_528030(int a1);
int nox_xxx_checkIsKillable_528190(nox_object_t* a1);
int nox_xxx_frameCounterSetCopyToNextFrame_5281D0();
int nox_xxx_frameCounterSetCopy_5281E0();
void nox_xxx_unitUpdateSightMB_5281F0(nox_object_t* a1);
int nox_xxx_aiLostSight_528560(int a1, int a2);
void sub_528610(int a1);
void nox_xxx_monsterUpdateSeenEnemies_5286D0(int a1, int a2);
void nox_xxx_monsterVisionSeeEnemy_5287B0(int a1, int a2);
int sub_528910(int a1, int a2);
int sub_528950(int a1, int a2);
int sub_528990(nox_object_t* a1);
void nox_xxx_netReportDestroyObject_5289D0(nox_object_t* a1);
int nox_xxx_netObjectOutOfSight_528A60(int a1, uint32_t* a2);
int nox_xxx_netObjectInShadows_528A90(int a1, uint32_t* a2);
int nox_xxx_monsterCmdSend_528BD0(int unit, int source, const char* command, short a4);
int nox_xxx_destroyEveryChatMB_528D60();
int nox_xxx_XFerMonster_528DB0(nox_object_t* a1);
void nox_xxx_monsterOnSpawnSpellcaster_529BC0(int a1);
int nox_xxx_XFer_ActionData_529CE0(int a1);
int nox_xxx_AssignIfGreater_52A420(int* a1, int a2);
int sub_52A440(int a1, int a2, int a3);
void nox_xxx_XFer_WriteShopItem_52A5F0(void* a1);
void nox_xxx_XFer_ReadShopItem_52A840(void* a1, int a2);
int nox_xxx_XFer_ReadMonsterBuffs_52AAB0(uint32_t* a1);
size_t nox_xxx_readNPCVoiceSet_52AD10(int a1);
int nox_xxx_XFerNPC_52ADE0(nox_object_t* a1);
int sub_52BA70(int a1);
int sub_52BAF0(int a1);
void nox_xxx_changeOwner_52BE40(nox_object_t* a1, nox_object_t* a2);
int sub_52BEB0(int a1, int a2, int a3, int a4);
int nox_xxx_castSpellWinkORrestoreHealth_52BF20(int a1, int a2, int a3, int a4, int* a5);
int sub_52BF50(int a1, int a2, int a3, int a4, int* a5);
int nox_xxx_castPull_52BFA0(int a1, int a2, int a3, int a4, int a5, int a6);
int nox_xxx_castPush_52C000(int a1, int a2, int a3, int a4, int a5, int a6);
int nox_xxx_castFumble_52C060(int a1, int a2, int a3, int a4, int* a5);
int nox_xxx_castConfuse_52C1E0(int a1, int a2, int a3, int a4, int* a5, char a6);
int nox_xxx_castStun_52C2C0(int a1, int a2, int a3, int a4, int* a5, char a6);
int nox_xxx_castBurn_52C3E0(int a1, int a2, int a3, int a4, int a5);
int nox_xxx_useShock_52C5A0(int a1, int a2, int a3, int a4, int* a5, int a6);
int nox_xxx_castPoison_52C720(int a1, int a2, int a3, int a4, int* a5, int a6);
int nox_xxx_castFireball_52C790(int a1, int a2, int a3, int a4, int a5, int a6);
int sub_52CA80(int a1, int a2, int a3, int a4);
int sub_52CBD0(int a1, int a2, int a3, int a4);
int sub_52CCD0(int a1, int a2, int a3);
int nox_xxx_castCurePoison_52CDB0(int a1, int a2, int a3, int a4, int* a5, int a6);
void sub_52CE60(int a1);
int nox_xxx_castLock_52CE90(int a1, int a2, int a3, int a4);
void sub_52CF90(int a1, int a2);
void sub_52D060(int a1, int a2);
int nox_xxx_castTelekinesis_52D330(int a1, int a2, int a3, int a4, int* a5, char a6);
int nox_xxx_castFist_52D3C0(int a1, int a2, int a3, int a4, int a5, int a6);
int nox_xxx_castMeteorShower_52D8A0(int a1, int a2, int a3, int a4, int a5, int a6);
int nox_xxx_castMeteor_52D9D0(int a1, int a2, int a3, int a4, int a5, int a6);
int nox_xxx_castToxicCloud_52DB60(int a1, int a2, int a3, int a4, int a5);
int nox_xxx_spellArachna_52DC80(int a1, int a2, int a3, int a4, int a5);
int sub_52DD50(int a1, int a2, int a3, int a4, void* a5);
int nox_xxx_castEquake_52DE40(int a1, int a2, int a3, int a4, int a5, int a6);
short nox_xxx_equakeDamage_52DEC0(int a1, int a2);
void nox_xxx_objectApplyForce_52DF80(float* vec, nox_object_t* obj, float force);
unsigned int nox_xxx_isObjectMovable_52E020(int a1);
void nox_xxx_mapPushUnitsAround_52E040(void* a1, float a2, float a3, float a4, nox_object_t* a5, int a6, int a7);
void nox_xxx_unitPushAroundFn_52E0E0(int a1, int** a2);
int nox_xxx_spellDrainMana_52E210(float a1);
int sub_52E450(int a1, int a2, int a3);
int sub_52E610(int* a1, int a2);
void sub_52E660(int a1, int a2);
int sub_52E7C0(int a1);
int nox_xxx_spellEnergyBoltStop_52E820(int a1);
int nox_xxx_spellEnergyBoltTick_52E850(float a1);
void nox_xxx_spellEnergyBoltSetTarget_52EC60(int a1, int a2);
int nox_xxx_firewalkTick_52ED40(float* a1);
int sub_52EF30(int a1);
int sub_52EFD0(int a1);
int sub_52F1D0(int a1);
int sub_52F220(int* a1);
int sub_52F2E0(float a1);
int sub_52F460(float a1);
int nox_xxx_castShield1_52F5A0(uint32_t* a1);
int sub_52F650(int a1);
int sub_52F670(int a1);
void nox_xxx_unitShield_52F690(int a1, int a2);
void nox_xxx_unitShieldReduceDamage_52F710(int a1, int* a2, int a3, int a4);
int nox_xxx_onStartLightning_52F820(int a1);

#endif // NOX_PORT_GAME4_2
#ifndef NOX_PORT_GAME4_3
#define NOX_PORT_GAME4_3

#include "defs.h"

int nox_xxx_onFrameLightning_52F8A0(float a1);
void nox_xxx_lightningCanAttackCheck_52FF10(int a1, int a2);
void nox_xxx_lightningSpellTrapEffect_530020(int a1, int a2);
char sub_530100(uint32_t* a1);
int nox_xxx_spellTagCreature_530160(uint32_t* a1);
unsigned int sub_530250(int a1);
int sub_530270(int a1);
int nox_xxx_spellBlink2_530310(uint32_t* a1);
int nox_xxx_spellBlink1_530380(int* a1);
uint32_t* nox_xxx_spellTeleportCreateWake_530560(int a1, int* a2, uint32_t* a3);
int sub_5305D0(uint32_t* a1);
int sub_530650(int* a1);
int nox_xxx_castTele_530820(int a1);
int sub_530880(int* a1);
int nox_xxx_castTTT_530B70(int* a1);
int sub_530CA0(int a1);
int sub_530D30(int* a1);
int nox_xxx_manaBomb_530F90(uint32_t* a1);
int nox_xxx_manaBombBoom_5310C0(int* a1);
int sub_531290(int a1);
int nox_xxx_spellTurnUndeadCreate_531310(uint32_t* a1);
int nox_xxx_spellTurnUndeadUpdate_531410();
int nox_xxx_spellTurnUndeadDelete_531420(int a1);
int sub_531490(uint32_t* a1);
int sub_5314F0(int a1);
int sub_531560(int a1);
int nox_xxx_plasmaSmth_531580(int a1);
int nox_xxx_plasmaShot_531600(int a1);
void sub_531920(int a1, int a2);
int sub_5319E0(int a1);
int nox_xxx_spellCreateMoonglow_531A00(uint32_t* a1);
int sub_531AF0(int a1);
int* nox_xxx_TODOsomeCallingMeleeAttack_531B40(int a1, int a2);
int* sub_531C10(int a1, int a2);
int* nox_xxx_monsterAction_531C60(int a1, int a2);
int* sub_531D50(int a1, int a2);
int nox_xxx_mobActionFightStart_531E20(uint32_t a1);
int sub_531E90(int a1);
char nox_xxx_mobActionFight_531EC0(int a1);
int sub_532040(int a1, int a2);
char nox_xxx_monsterShieldBlockStart_532070(int a1);
char nox_xxx_monsterShieldBlockStop_5320E0(int a1);
char nox_ai_action_pop_532100(int a1);
char sub_532110(int a1);
int* nox_xxx_mobActionMelee1_532130(int a1);
void sub_532390(int a1, int a2);
char nox_xxx_mobActionMeleeAtt_532440(int a1);
uint32_t* sub_532540(int a1);
char nox_xxx_mobActionMissileAtt_532610(int a1);
char nox_xxx_monsterPlayHurtSound_532800(nox_object_t* a1);
int sub_532880(int a1);
void sub_532930(int a1, unsigned short a2, unsigned short a3);
int nox_xxx_soundDefaultDamageSound_532E20(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_projAddVelocitySmth_533080(int a1, int a2, float a3, int a4);
int nox_xxx_unitIsEnemyTo_5330C0(nox_object_t* a1, nox_object_t* a2);
nox_object_t* nox_xxx_enemyAggro_5335D0(nox_object_t* a1, float a2);
double sub_5336D0(nox_object_t* a1);
int nox_xxx_mobActionToAnimation_533790(int a1);
void nox_xxx_orderUnit_533900(nox_object_t* owner, nox_object_t* creature, int orderType);
void nox_xxx_enactUnitOrder_5339A0(int source, int unit, int orderId);
void nox_xxx_mobCalcDir_533CC0(int a1, float* a2);
unsigned char* nox_xxx_unitNPCActionToAnim_533D00(int a1);
int nox_xxx_monsterTestBlockShield_533E70(nox_object_t* a1);
void sub_533EB0(int a1, int a2);
int sub_534020(int a1);
char nox_xxx_monsterMoveAudio_534030(int a1);
int sub_534120(int a1, float2* a2);
void nox_ai_debug_printf_5341A0(char* a1, ...);
int sub_5341D0(int a1);
int nox_xxx_monsterCanMelee_534220(int a1);
int nox_xxx_monsterCanShoot_534280(int a1);
int nox_xxx_monsterHasShield_5342C0(int a1);
int nox_xxx_monsterCanCast_534300(nox_object_t* a1);
int nox_xxx_monsterIsMoveing_534320(int a1);
int sub_534340(int a1);
int nox_xxx_monsterCanAttackAtWill_534390(nox_object_t* a1);
int sub_5343C0(int a1);
int sub_534400(int a1);
int sub_534440(int a1);
double sub_534470(int a1);
char* sub_5345B0(int a1);
int nox_xxx_actionNByNameMB_5345F0(const char* a1);
char* sub_534650(int a1);
int nox_xxx_actionByName_534670(const char* a1);
int sub_534710(int a1);
int sub_534750(int a1);
int sub_534780(int a1);
int sub_5347A0(nox_object_t* a1);
int sub_5347C0(int a1);
int nox_xxx_isNotPoisoned_5347F0(int a1);
int nox_xxx_mobGetMoveAttemptTime_534810(nox_object_t* a1);
int nox_xxx_unitIsMimic_534840(int a1);
void nox_xxx_monsterMimicCheckMorph_534950(nox_object_t* a1);
int nox_xxx_unitIsPlant_534A10(int a1);
int nox_xxx_unitIsZombie_534A40(int a1);
char nox_xxx_mobActionGetUp_534A90(int a1);
unsigned int nox_xxx_mobRaiseZombie_534AB0(int a1);
int nox_xxx_damageToMap_534BC0(int a1, int a2, int a3, int a4, nox_object_t* a5);
int nox_xxx_wallPreDestroy_534DA0(int* a1);
bool nox_xxx_mapDamageToWalls_534FC0(int4* a1, void* a2, float a3, int a4, int a5, void* a6);
int nox_xxx_mapTraceRay_535250(float4* a1, float2* a2, int2* a3, char a4);
char* sub_5361B0(char* a1, int a2);
char* sub_536260(char* a1, int a2);
int sub_5364E0(char* a1, int a2);
int sub_536550(char* a1, uint32_t* a2);
int sub_536580(char* a1, int a2);
int sub_5365B0(char* a1, int a2);
int sub_536600(char* a1, int a2);
int sub_536B40(char* a1, int a2);
int sub_536D80(char* a1, int a2);
int sub_536DA0(char* a1, int* a2);
int sub_536DE0(char* a1, uint8_t* a2);
int nox_xxx_collideDamageLoad_536E10(char* a1, int a2);
int sub_536E50(char* a1, uint8_t* a2);
int sub_536E80(char* a1, int* a2);
int nox_xxx_unitCanInteractWith_5370E0(nox_object_t* a1, nox_object_t* a2, int a3);
int nox_xxx_mapCheck_537110(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_traceRay_5374B0(float4* a1);
void nox_xxx_harpoonBreakForPlr_537520(nox_object_t* a1);
int sub_537580(int a1);
void sub_5375A0(int a1);
char nox_xxx_unitHasCollideOrUpdateFn_537610(nox_object_t* a1);
int sub_537740();
int sub_537750(int a1);
unsigned int sub_537760();
void sub_537770(nox_object_t* a1);
char nox_xxx_projectileTraceHit_537850(int a1, int* a2, float2* a3);
void nox_xxx_sMakeScorch_537AF0(float* a1, int a2);
int nox_xxx_scorchInit_537BD0();
int nox_xxx_playerPreAttackEffects_538290(int a1, int a2, int a3, int a4);
int nox_xxx_playerTraceAttack_538330(int a1, int a2);
void sub_538510(int a1, int a2);
void sub_5386A0(int a3, int a2);
int nox_xxx_itemApplyAttackEffect_538840(int a1, int a2, int a3);
int nox_xxx_playerAttack_538960(nox_object_t* a1);
short nox_xxx_warcryStunMonsters_539B90(int a1, int a2);
int nox_xxx_shootBowCrossbow1_539BD0(int a1, int a2);
uint32_t* nox_xxx_shootBowCrossbow2_539D80(int a1, int a2, int a3, char* a4);
int nox_xxx_shootApplyEffects_539F40(int a1, int a2, int a3);
int sub_539FB0(uint32_t* a1);
int nox_xxx_playerTryReloadQuiver_539FF0(uint32_t* a1);
int nox_xxx_equipWeaponNPC_53A030(int a1, int a2);
void sub_53A0F0(int a1, int a2, int a3);
int nox_xxx_playerDequipWeapon_53A140(uint32_t* a1, nox_object_t* item, int a3, int a4);
int nox_xxx_NPCEquipWeapon_53A2C0(int a1, nox_object_t* item);
void sub_53A3D0(uint32_t* a1);
int nox_xxx_playerEquipWeapon_53A420(uint32_t* a1, nox_object_t* item, int a3, int a4);
int sub_53A680(int a1);
void sub_53A6C0(int a1, nox_object_t* item);
int sub_53A720(int a1, nox_object_t* item, int a3, int a4);
int nox_xxx_sendMsgOblivionPickup_53A9C0(int a1, nox_object_t* item, int a3, int a4);
void sub_53AAB0(int a1);
int nox_xxx_dropWeapon_53AB10(int a1, uint32_t* a2, int* a3);
void sub_53AB90(int a1, int a2);
char nox_xxx_updateDoor_53AC50(int a1);
void nox_xxx_updateSpark_53ADC0(int a1);
float* nox_xxx_updateProjTrail_53AEC0(int a1);
void nox_xxx_updatePush_53B030(int a1);
char nox_xxx_updateToggle_53B060(uint32_t* a1);
char nox_xxx_updateTrigger_53B1B0(int a1);
char sub_53B300(int a1);
char nox_xxx_updateSwitch_53B320(uint32_t* a1);
char nox_xxx_updateElevatorShaft_53B380(int a1);
void nox_xxx_fnElevatorShaft_53B410(int a1, int a2);
void nox_xxx_elevatorAud_53B490(int a1, int a2);
void nox_xxx_updateElevator_53B5D0(uint32_t* a1);
void nox_xxx_elevatorFn_53B750(int a1, int a2);
void nox_xxx_updatePhantomPlayer_53B860(int a1);
void nox_xxx_updateLifetime_53B8F0(int unit);
void nox_xxx_spellFlyUpdate_53B940(int a1);
void nox_xxx_updateAntiSpellProj_53BB00(int a1);
void sub_53BD10(int a1, int a2);
int nox_xxx_updateMagicMissile_53BDA0(int a1);
int nox_xxx_updateTeleportPentagram_53BEF0(int a1);
void nox_xxx_fnPentagramTeleport_53C060(float* a1, int a2);
int nox_xxx_updateInvisiblePentagram_53C0C0(int a1);
void sub_53C140(float* a1, int a2);
void nox_xxx_updateBlow_53C160(int a3);
void sub_53C240(float* a1, int arg4);
int nox_xxx_rechargeItem_53C520(int a1, int a2);
signed int nox_xxx_updateObelisk_53C580(int a1);
int nox_xxx_getRechargeRate_53C940(uint32_t* a1);
void nox_xxx_updateBlackPowderBarrel_53C9A0(float* a1);
void nox_xxx_updateOneSecondDie_53CB60(int a1);
void nox_xxx_updateWaterBarrel_53CB90(int a1);
void nox_xxx_waterBarrel_53CC30(float* a1, int a2);
void nox_xxx_updateSelfDestruct_53CC90(int a1);
void nox_xxx_updateBlackPowderBurn_53CCB0(int a1);
void nox_xxx_updatePixie_53CD20(nox_object_t* a1);
void sub_53D170(int a1, int a2);
void nox_xxx_updateDeathBallFragment_53D220(int a1);
void nox_xxx_updateMoonglow_53D270(int a1);
void nox_xxx_updateTelekinesis_53D330(int a1);
void nox_xxx_updateFist_53D400(int a1);
void nox_xxx_updateFlameCleanse_53D510(int a1);
void nox_xxx_updateMeteorShower_53D5A0(float* a2);
void nox_xxx_meteorExplode_53D6E0(int a6);
void nox_xxx_updateToxicCloud_53D850(int a1);
void sub_53D8C0(int a1, int a2);
void nox_xxx_updateSmallToxicCloud_53D960(int a1);
void nox_xxx_toxicCloudPoison_53D9D0(int a1, int a2);
void nox_xxx_updateArachnaphobia_53DA60(int* a1);
void nox_xxx_updateExpire_53DB00(int a1);
int* nox_xxx_updateBreak_53DB30(uint32_t* a1);
int* nox_xxx_updateOpen_53DBB0(uint32_t* a1);
void nox_xxx_updateBreakAndRemove_53DC30(uint32_t* a1);
void nox_xxx_updateChakramInMotion_53DCC0(int a1);
int nox_xxx_updateFlag_53DDF0(int a1);
int* nox_xxx_updateTrapDoor_53DE80(uint32_t* a1);
void nox_xxx_updateGameBall_53DF40(int a3);
void nox_xxx_updateUndeadKiller_53E190(int a1);
void nox_xxx_updateCrown_53E1D0(int a1);
int sub_53E2D0(int a1);
int nox_xxx_recalculateArmorVal_53E300(uint32_t* a1);
int sub_53E3A0(int a1, nox_object_t* object);
int sub_53E430(uint32_t* a1, nox_object_t* object, int a3, int a4);
int nox_xxx_NPCEquipArmor_53E520(int a1, uint32_t* a2);
void sub_53E600(uint32_t* a1);
int nox_xxx_playerEquipArmor_53E650(uint32_t* a1, nox_object_t* item, int a3, int a4);
uint32_t* nox_xxx_armorHaveSameSubclass_53E7B0(int a1, int a2);
int nox_xxx_pickupArmor_53E7F0(int a1, int a2, int a3, int a4);
void sub_53EAE0(int a1);
int nox_xxx_dropArmor_53EB70(int a1, uint32_t* a2, int* a3);
int nox_xxx_ItemIsDroppable_53EBF0(int a1);
char* sub_53EC40();
int sub_53EC80(int a1, int a2);
int nox_xxx_useMushroom_53ECE0(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_useEnchant_53ED60(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_useCast_53ED90(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_useConsume_53EE10(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_useCiderConfuse_53EF00(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_usePotion_53EF70(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_useLesserFireballStaff_53F290(int a1, uint32_t* a2);
uint32_t* nox_xxx_wandShot_53F480(int a1, int a2, int* a3, uint32_t* a4);
int nox_xxx_useWandCastSpell_53F4F0(int a1, uint32_t* a2);
int nox_xxx_useFireWand_53F670(int a1, int a2);
int nox_xxx_useRead_53F7C0(int a1, int a2);
int sub_53F830(int a1, int a2);
int nox_xxx_useByNetCode_53F8E0(int a1, int a2);
int sub_53F930(int a1, int a2);
int nox_xxx_useSpellReward_53F9E0(int a1, int a2);
int nox_xxx_useAbilityReward_53FAE0(int a1, int a2);
uint32_t* nox_xxx_respawnPlayerImpl_53FBC0(float* a1, int a2);
void nox_xxx_createCorpse_53FCA0();
int nox_xxx_castPixies_540440(int a1, int a2, int a3, int a4, int a5, int a6);
nox_object_t* nox_xxx_spellFlySearchTarget_540610(float2* a1, nox_object_t* a2, int a3, float a4, int a5, nox_object_t* a6);
int sub_5408A0(int a1);
int nox_xxx_mobCastInversion_5408D0(int a1);
void nox_xxx_monsterCast_540A30(nox_object_t* a1, int a2, nox_object_t* a3);
int nox_xxx_unitIsMagicMissile_540B60(int a1, int a2);
int nox_xxx_monsterBuffSelf_540B90(int a1);
int sub_540CE0(int a1, int a2);
int sub_540D20(int a1);
int sub_540D40(int a1);
int nox_xxx_mobCastRelated2_540D90(int a1, int a2);
int nox_xxx_monsterCastOffensive_540F20(int a1, int a2);
int nox_xxx_mobCastRelated_541050(int a1);
int nox_xxx_mobHealSomeone_5411A0(nox_object_t* a3);
void nox_xxx_mobMayHealThis_5412A0(float* a1, int a2);
char nox_xxx_mobCast_541300(int a1, uint32_t* a2, int a3);
char nox_xxx_mobActionCast_5413B0(nox_object_t* a1, int a2);
void nox_xxx_mobCastRandomRecoil_541490(int a1, float* a2, float2* a3);
char* sub_542BF0(int a1, int a2, int a3);
char* sub_5435C0(int a1, int a2, int a3, int a4);
char* sub_543620(int a1, int a2);
int sub_543680(float* a1);
int sub_5437E0(int* a1, int a2, int a3);
void sub_543BC0(int a1, int a2, int a3, int a4, int a5, int a6);
int nox_xxx_tile_543C50(uint32_t* a1, int a2, int a3, int a4, int a5, int a6);
int sub_543E60(int a1, int a2);
int nox_xxx_mapGenEdge_543EB0(int a1, int a2);
int sub_543FB0(const char* a1);
int sub_544020(char* a1);
int nox_xxx_tileCheckByte3_544070(int a1);
int nox_xxx_tileCheckByte4_5440A0(int a1);
int nox_xxx_tileSubtile_544310(float2* a1);
char nox_xxx_mobActionMoveTo_5443F0(int a1);
char nox_xxx_mobActionMoveToFar_5445C0(int* a1);
void nox_xxx_mobActionDodge_544640(int a1);
int sub_544740(int a1);
int sub_544750(int a1);
char nox_xxx_mobActionFlee_544760(int a1);
int nox_xxx_mobActionReturnToHome_544920(int a1);
int sub_544930(int a1);
int sub_544940(int a1);
char sub_544950(int a1);
int* nox_xxx_mobActionHunt_5449D0(int a1);
int nox_xxx_mobSearchEdible_544A00(nox_object_t* a1, float a2);
void nox_xxx_mobSearchEdible2_544A40(int a1, int a2);
int sub_544AE0(int a1, float a2);
void sub_544B20(int a1, int a2);
char nox_xxx_mobActionPickupObject_544B90(int a1);
int nox_xxx_mobGenericDeath_544C40(int a1);
void nox_xxx_zombieBurnDeleteCheck_544CA0(uint32_t* a1);
void nox_xxx_zombieBurnDelete_544CE0(uint32_t* a1);
char sub_544D60(int a1);
char nox_xxx_mobActionDead1_544D80(uint32_t* a1);
void nox_xxx_createReleasedSoul_544E60(int a1);
int sub_544F70(int a1);
void nox_xxx_mobActionDead2_544EC0(int a1);

#endif // NOX_PORT_GAME4_3
#ifndef NOX_PORT_GAME3_3
#define NOX_PORT_GAME3_3

#include "defs.h"

int nox_server_handler_PlayerDamage_4E17B0(int a1, int a2, int a3, int a4, int a5);
void nox_xxx_playerDecrementHPMana_4E20F0(int a1, int a2, float a3);
void nox_xxx_playerDamageItems_4E2180(int a1, int a2, int a3, int a4, float a5);
double sub_4E2220(int a1);
int sub_4E22A0(int a1, int a2, int a3, int a4, float a5, int a6);
int sub_4E2330(int a1, int a2, int a3, int a4, float a5, int a6);
int sub_4E23C0(int a1, int a2, int a3, int a4, int a5);
int sub_4E24B0(int a1, int a2, int a3, int a4, int a5);
int sub_4E24E0(int a1, int a2, int a3, int a4, int a5);
int nox_xxx_damageFlammable_4E2520(int a1, int a2, int a3, int a4, int a5);
int nox_xxx_damageBlackPowder_4E2560(int a1, int a2, int a3, int a4, int a5);
void nox_xxx_gameSetWallsDamage_4E25A0(int a1);
void nox_xxx_mapDamageUnitsAround_4E25B0(float* a1, float a2, float a3, int a4, int a5, nox_object_t* a6, nox_object_t* a7);
int nox_xxx_damageMonsterGen_4E27D0(int a1, int a2, int a3, int a4, int a5);
nox_object_t* nox_xxx_newObjectWithTypeInd_4E3450(int ind);
nox_object_t* nox_xxx_newObjectByTypeID_4E3810(char* id);
int nox_xxx_objectFreeMem_4E38A0(nox_object_t* a1);
char* nox_xxx_getUnitName_4E39D0(nox_object_t* a1);
char* nox_xxx_getUnitNameByThingType_4E3A80(int a1);
int nox_xxx_getNameId_4E3AA0(char* a1);
int nox_xxx_unitDefGetCount_4E3AC0();
int sub_4E3AD0(int a1);
int sub_4E3B80(int a1);
int nox_xxx_getUnitDefDd10_4E3BA0(int a1);
double sub_4E3CA0();
int sub_4E3CB0(float a1);
int nox_game_getQuestStage_4E3CC0();
void nox_game_setQuestStage_4E3CD0(int a1);
int nox_xxx_player_4E3CE0();
int sub_4E3D50();
short sub_4E3DD0();
void sub_4E4080(float a1);
double sub_4E40B0();
void sub_4E40C0(float a1);
double sub_4E40F0();
int sub_4E4100();
int sub_4E41B0(char* a1);
int sub_4E42C0(FILE* a1);
int sub_4E4390(FILE* a1);
FILE* sub_4E43F0(char* a1);
void nox_xxx_unitNeedSync_4E44F0(nox_object_t* a1);
int* sub_4E4500(nox_object_t* a1, int a2, int a3, int a4);
int nox_xxx_unitSetHP_4E4560(nox_object_t* obj, unsigned short amount);
int* nox_xxx_unitSetOnOff_4E4670(int a1, int a2);
void nox_xxx_unitRaise_4E46F0(nox_object_t* obj, float a2);
void nox_xxx_unitUnsetXStatus_4E4780(nox_object_t* a1, unsigned int a2);
void nox_xxx_unitSetXStatus_4E4800(nox_object_t* a1p, unsigned int a2);
int* nox_xxx_servMarkObjAnimFrame_4E4880(int a1, int a2);
int* nox_xxx_setUnitBuffFlags_4E48F0(int a1, int a2);
int* nox_xxx_modifSetItemAttrs_4E4990(nox_object_t* a1, int* a2);
double nox_xxx_objectGetMass_4E4A70(int a1);
void nox_xxx_setNPCColor_4E4A90(nox_object_t* a1p, unsigned char a2, void* a3);
int* nox_xxx_npcSetItemEquipFlags_4E4B20(int a1, nox_object_t* item, int a3);
int sub_4E4C00(nox_object_t* item);
int sub_4E4C10(nox_object_t* item);
int nox_object_getInitData_4E4C30(nox_object_t* item);
int sub_4E4C50(nox_object_t* item);
int sub_4E4C80(nox_object_t* item);
int sub_4E4C90(nox_object_t* a1, unsigned int a2);
int sub_4E4DE0();
int sub_4E4E50(int a1);
int sub_4E4ED0();
int sub_4E4EF0();
int sub_4E4F30(int a1);
int nox_xxx_playerResetImportantCtr_4E4F40(int a1);
int sub_4E4F80();
void sub_4E4FC0(int a1);
int nox_xxx_netSendPacket_4E5030(int a1, const void* a2, signed int a3, int a4, int a5, char a6);
int nox_xxx_importantCheckRate_4E52B0();
char* nox_xxx_playerKickDueToRate_4E5360(int a1);
int nox_xxx_netSendPacket1_4E5390(int a1, int a2, int a3, int a4, int a5);
int nox_xxx_netClientSend2_4E53C0(int a1, const void* a2, int a3, int a4, int a5);
int nox_xxx_netSendPacket0_4E5420(int a1, const void* a2, signed int a3, int a4, int a5);
int sub_4E5450(int a1, char* a2, signed int a3, int a4, int a5);
void sub_4E54D0(int a1, int a2, int a3);
int nox_net_importantACK_4E55A0(int a1, int a2);
int sub_4E55F0(unsigned char a1);
unsigned int nox_xxx_importantCheckRate2_4E5670(unsigned char a1);
void nox_xxx_netImportant_4E5770(unsigned char a1, int a2);
void nox_xxx_playerRemoveSpawnedStuff_4E5AD0(nox_object_t* a1);
int nox_xxx_isUnit_4E5B50(nox_object_t* a1p);
int sub_4E5B80(nox_object_t* a1p);
void sub_4E5BF0(int a1);
void nox_xxx_delayedDeleteObject_4E5CC0(nox_object_t* obj);
int sub_4E5F40(int a1);
void sub_4E5FC0(int a1);
void nox_xxx_playerCameraUnlock_4E6040(nox_object_t* player);
void nox_xxx_playerCameraFollow_4E6060(nox_object_t* player, nox_object_t* unitId);
nox_object_t* sub_4E6150(nox_playerInfo* a1);
int sub_4E6230();
nox_object_t* nox_xxx_playerObserverFindGoodSlave0_4E6280(nox_playerInfo* a1);
void nox_xxx_updatePlayerObserver_4E62F0(nox_object_t* a1);
int nox_xxx_playerGoObserver_4E6860(nox_playerInfo* pl, int a2, int a3);
void nox_xxx_playerLeaveObserver_0_4E6AA0(nox_playerInfo* pl);
int sub_4E6BD0(int a1);
double nox_xxx_calcDistance_4E6C00(nox_object_t* a1, nox_object_t* a2);
int sub_4E6CE0(float2* a1, float2* a2);
int nox_server_testTwoPointsAndDirection_4E6E50(float2* a1, int a2, float2* a3);
void nox_xxx_unitMove_4E7010(nox_object_t* obj, float2* a2);
void nox_xxx_teleportToMB_4E7190(uint8_t* a1, float* a2);
int nox_xxx_objectUnkUpdateCoords_4E7290(nox_object_t* a1);
void nox_xxx_spawnSomeBarrel_4E7470(int a1, int a2);
void sub_4E7540(nox_object_t* a1, nox_object_t* a2);
char nox_xxx_objectSetOn_4E75B0(nox_object_t* obj);
int nox_xxx_objectSetOff_4E7600(nox_object_t* obj);
int sub_4E7700(int a1);
int nox_xxx_inventoryGetFirst_4E7980(int a1);
int nox_xxx_inventoryGetNext_4E7990(int a1);
int sub_4E79B0(int a1);
char nox_xxx_unitFreeze_4E79C0(nox_object_t* obj, int a2);
char nox_xxx_unitUnFreeze_4E7A60(nox_object_t* obj, int a2);
void nox_xxx_unitBecomePet_4E7B00(int a1, int a2);
void nox_xxx_monsterRemoveMonitors_4E7B60(nox_object_t* a1, nox_object_t* a2);
int sub_4E7BC0(int a1);
int nox_xxx_unitIsCrown_4E7BE0(int a1);
int nox_xxx_unitIsGameball_4E7C30(int a1);
int nox_xxx_unitIsUnitTT_4E7C80(nox_object_t* a1, int a2);
int nox_xxx_unitCountSlaves_4E7CF0(int a1, int a2, int a3);
int nox_xxx_inventoryCountObjects_4E7D30(int a1, int a2);
int sub_4E7DE0(int a1, nox_object_t* item);
int sub_4E7EC0(int a1, nox_object_t* item);
char* nox_xxx_unitPostCreateNotify_4E7F10(nox_object_t* a1);
int nox_xxx_unitIsHostileMimic_4E7F90(nox_object_t* a1, nox_object_t* a2);
void nox_xxx_monsterMarkUpdate_4E8020(nox_object_t* a1);
int sub_4E80C0(char a1);
char* sub_4E8110(int a1);
int sub_4E81D0(nox_object_t* a1p);
int sub_4E8290(char a1, short a2);
int sub_4E82C0(unsigned char a1, char a2, char a3, short a4);
char* sub_4E8310();
unsigned char* sub_4E8320(unsigned char a1);
void nox_xxx_fnFindCloseDoors_4E8340(float* a1, int a2);
int sub_4E8390(int a1);
unsigned char* nox_xxx_collideMonsterEventProc_4E83B0(int a1, int a2);
unsigned char* nox_xxx_collideMimic_4E83D0(int a1, int a2);
void nox_xxx_collidePlayer_4E8460(int a1, int a2);
void sub_4E86E0(int a1, float* a2);
void nox_xxx_collideProjectileGeneric_4E87B0(int a1, int a2);
void nox_xxx_collideProjectileSpark_4E8880(int a1, int a2);
nox_object_t* nox_xxx_doorGetSomeKey_4E8910(nox_object_t* a1, nox_object_t* a2);
void nox_xxx_collideDoor_4E8AC0(int a2, int a3);
int nox_xxx_collidePickup_4E8DF0(int a1, int a2);
unsigned char* sub_4E8E50();
int sub_4E8E60();
bool nox_server_questMaybeWarp_4E8F60();
int sub_4E9010();
void nox_xxx_collideExit_4E9090(int a1, int a2, int a3);
void nox_xxx_collideDamage_4E9430(int a1, int a2);
void nox_xxx_collideManadrain_4E9490(int a1, int a2);
void nox_xxx_spellFlyCollide_4E9500(int a1, int a2, float* a3);
void nox_xxx_collideBomb_4E96F0(int a1, int a2);
void nox_xxx_collideBoom_4E9770(int a1, int a2, float* a3);
void nox_xxx_collideDie_4E99B0(int unit, int a2);
void nox_xxx_collideGlyph_4E9A00(nox_object_t* a1, nox_object_t* a2);
int sub_4E9A30(nox_object_t* a1, nox_object_t* a2);
void nox_xxx_fireballCollide_4E9AC0(int a1, int a2);
void nox_xxx_collideChest_4E9C40(uint32_t* a1, int a2);
void nox_xxx_collideSulphurShot2_4E9D80(int a1, int a2, float* a3);
void nox_xxx_collideSulphurShot_4E9E50(int a1, int a2, int a3);
void nox_xxx_collideDeathBallFragment_4E9FE0(int a1, int a2, float* a3);
void nox_xxx_collidePixie_4EA080(int a1, int a2, float* a3);
void nox_xxx_collideWallReflectSpark_4EA200(int a1, int a2, float2* a3);
void sub_4EA2C0(int a1, int a2);
void nox_xxx_collideSpark_4EA300(int a1, int a2, float* a3);
void nox_xxx_collideWebbing_4EA380(int a1, int a2);
void sub_4EA400(int a1, int a2);
void nox_xxx_pickupFlagCtf_4EA490(int a1, int a2);
int sub_4EA7A0(int a1);
short sub_4EA800(int a1, int a2);
void sub_4EAAA0(int a1);
void sub_4EAAD0(int a1, int a2);
int nox_xxx_collidePentagram_4EAB20(int a1);
void nox_xxx_collideSign_4EAB40(int a1, int a2);
void nox_xxx_collideTrapDoor_4EAB60(int a1, int a2);
void sub_4EACA0(int a1, int a2);
int nox_xxx_collideSpellPedestal_4EAD20(int a1, int a2);
void nox_xxx_collideFist_4EADF0(int a1, int a2);
void nox_xxx_collideTeleportWake_4EAE30(int a1, int a2);
void nox_xxx_collideChakram_4EAF00(int a1, int a2, float* a3);
int sub_4EB250(int a1);
void sub_4EB340(float* a1, int a2);
void sub_4EB3E0(int a1);
void nox_xxx_collideArrow_4EB490(int a1, int a2);
void nox_xxx_collideHarpoon_4EB6A0(nox_object_t* a1, nox_object_t* a2);
void nox_xxx_collideMonsterArrow_4EB800(int a1, int a2);
void nox_xxx_collideBearTrap_4EB890(int* a1, int a2);
void nox_xxx_collidePoisonGasTrap_4EB910(int* a1, int a2);
int sub_4EB9B0(int a1, int a2);
void nox_xxx_collideBall_4EBA00(int a1, int a2);
int sub_4EBB50(int a1, int a2);
short nox_xxx_collideHomeBase_4EBB80(int a1, int a2);
void nox_xxx_collideUndeadKiller_4EBD40(int a1, int a2, int a3);
void nox_xxx_collideMonsterGen_4EBE10(int a1, int a2);
void sub_4EBE40(int a1, int a2);
void nox_xxx_collideAnkhQuest_4EBF40(int a1, int a2);
void nox_xxx_unitSetOwner_4EC290(nox_object_t* obj1, nox_object_t* obj2);
void nox_xxx_unitClearOwner_4EC300(nox_object_t* obj);
int nox_xxx_playerObserverFindGoodSlave2_4EC3E0(int a1);
int nox_xxx_playerObserverFindGoodSlave_4EC420(int a1);
void nox_xxx_unitRemoveChild_4EC470(nox_object_t* a1);
void nox_xxx_unitTransferSlaves_4EC4B0(nox_object_t* a1);
int nox_xxx_unitHasThatParent_4EC4F0(nox_object_t* a1, nox_object_t* a2);
int nox_xxx_unitsHaveSameTeam_4EC520(nox_object_t* a1, nox_object_t* a2);
nox_object_t* nox_xxx_findParentChainPlayer_4EC580(nox_object_t* unit);
void sub_4EC5B0();
uint32_t* nox_xxx_respawnAdd_4EC5E0(nox_object_t* a1);
void sub_4EC6A0(int a1);
int nox_xxx_allocItemRespawnArray_4ECA60();
void sub_4ECA90();
int sub_4ECBD0(int a1);
int sub_4ECC00(const char** a1);
nox_object_t* nox_server_getObjectFromNetCode_4ECCB0(int a1);
int nox_server_netCodeCache_lookupObj_4ECD90(int a1);
int sub_4ECDE0(uint32_t* a1, int a2);
int sub_4ECE10(uint32_t* a1, int a2);
int nox_server_netCodeCache_initArray_4ECE50();
int nox_server_netCodeCache_addObj_4ECEA0(int a1);
int nox_server_netCodeCache_nextUnused_4ECEF0();
int sub_4ECF10(int a1);
int sub_4ECFA0(nox_object_t* a1);
int sub_4ECFE0();
int nox_xxx_netGetUnitByExtent_4ED020(int a1);
void sub_4ED050(int a1, int a2);
void sub_4ED0C0(nox_object_t* a1p, nox_object_t* object);
int nox_xxx_dropDefault_4ED290(nox_object_t* a1p, nox_object_t* a2p, float2* a3);
int nox_GlyphDrop_4ED500(int a1, int a2, float2* a3);
int nox_xxx_dropTrap_4ED580(int a1, int a2, float2* a3);
int nox_xxx_dropCrown_4ED5E0(int a1, int a2, int* a3);
int nox_xxx_dropTreasure_4ED710(int a1, int a2, int* a3);
int nox_xxx_drop_4ED790(nox_object_t* a1, nox_object_t* a2, float2* a3);
int nox_xxx_drop_4ED810(int a1, int a2, float* a3);
int nox_xxx_invForceDropItem_4ED930(int a1, uint32_t* a2);
float2* sub_4ED970(float a1, float2* a2, float2* a3);
uint32_t* nox_xxx_dropAllItems_4EDA40(uint32_t* a1);
int nox_xxx_unitDropCheckSome_4EDCD0(int a1, int a2);
int sub_4EDDE0(int a1, uint32_t* a2, int* a3);
int nox_xxx_dropFood_4EDE50(int a1, int a2, int* a3);
void nox_xxx_chest_4EDF00(int a1, int a2);
double sub_4EE2A0(int a1);
int nox_xxx_dropAnkhTradable_4EE370(int a1, int a2, int* a3);
void nox_xxx_unitAdjustHP_4EE460(nox_object_t* unit, int dv);
void nox_xxx_mobInformOwnerHP_4EE4C0(nox_object_t* obj);
void nox_xxx_unitDamageClear_4EE5E0(nox_object_t* unit, int damageAmount);
void nox_xxx_unitHPsetOnMax_4EE6F0(int unit);
void nox_xxx_playerHP_4EE730(int a1);
short nox_xxx_unitGetHP_4EE780(nox_object_t* item);
short nox_xxx_unitGetMaxHP_4EE7A0(int a1);
int nox_xxx_unitSetMaxHP_4EE7C0(int a1, short a2);
int nox_xxx_activatePoison_4EE7E0(int a1, int a2, int a3);
void nox_xxx_updatePoison_4EE8F0(nox_object_t* a1, int a2);
void nox_xxx_removePoison_4EE9D0(nox_object_t* a1);
void nox_xxx_setSomePoisonData_4EEA90(int a1, int a2);
unsigned short nox_xxx_playerManaAdd_4EEB80(nox_object_t* unit, short amount);
uint32_t* nox_xxx_playerManaSub_4EEBF0(int unit, int amount);
short nox_xxx_unitGetOldMana_4EEC80(int unit);
short nox_xxx_playerGetMaxMana_4EECB0(int unit);
int nox_xxx_playerSetMaxMana_4EECD0(int unit, short amount);
uint32_t* nox_xxx_playerManaRefresh_4EECF0(int unit);
void nox_xxx_abilGivePlayerAll_4EED40(int a1, char a2, int a3);
int nox_xxx_plrReadVals_4EEDC0(nox_object_t* a1, int a2);
int sub_4EF140(int a1);
double nox_xxx_calcBoltDamage_4EF1E0(int a1, int a2);
void sub_4EF410(int a1, unsigned char a2);
void nox_xxx_set_god_4EF500(int a1);
char nox_xxx_getRespawnWeaponFlags_4EF580();
int sub_4EF6F0(int a1);
nox_object_t* nox_xxx_playerRespawnItem_4EF750(nox_object_t* a1, char* a2, int* a3, int a4, int a5);
char nox_xxx_playerMakeDefItems_4EF7D0(int a1, int a2, int a3);
int nox_xxx_netSendPlayerRespawn_4EFC30(int a1, char a2);
void nox_xxx_spellAwardAll2_4EFC80(nox_playerInfo* a1p);
void nox_xxx_spellAwardAll1_4EFD80(nox_playerInfo* a1p);
void nox_xxx_spellAwardAll3_4EFE10(nox_playerInfo* a1p);
char nox_xxx_unitInitPlayer_4EFE80(nox_object_t* a1);
int sub_4EFF10(int a1);
void nox_xxx_unitMonsterInit_4F0040(nox_object_t* a1);
uint32_t* nox_xxx_unitSparkInit_4F0390(int a1);
int nox_xxx_initFrog_4F03B0(int a1);
int* nox_xxx_initChest_4F0400(int a1);
uint32_t* nox_xxx_unitBoulderInit_4F0420(uint32_t* a1);
int sub_4F0450(int a1);
int sub_4F0490(int a1);
int nox_xxx_unitInitGold_4F04B0(int a1);
int* nox_xxx_breakInit_4F0570(int a1);
int nox_xxx_unitInitGenerator_4F0590(int a1);
uint32_t* nox_server_rewardgen_activateMarker_4F0720(int a1, unsigned int a2);
uint32_t* nox_xxx_rewardSpellBook_4F09F0(int a1, unsigned int a2);
int nox_server_rewardGen_pickRandomSlots_4F0B60(unsigned int a1);
uint32_t* nox_xxx_rewardAbilityBook_4F0C70(int a1);
uint32_t* nox_xxx_rewardFieldGuide_4F0D20(int a1, unsigned int a2);
uint32_t* nox_xxx_rewardMakeArmor_4F0E80(int a1, unsigned int a2);
int nox_xxx_rewardMakeWeapon_4F14E0(int a1, unsigned int a2);
uint32_t* nox_xxx_rewardMakePotion_4F1C40(int a1, unsigned int a2);
uint32_t* nox_xxx_createGem_4F1D30(int a1, unsigned int a2);
uint32_t* nox_xxx_createGem2_4F1F00(int a1, unsigned int a2);
void sub_4F2110();
int sub_4F2210();
int sub_4F24E0(int a1);
int sub_4F2530(int a1);
int sub_4F2570(int a1);
int sub_4F2590(int a1);
int sub_4F2700(int a1);
int sub_4F27A0(int a1);
int sub_4F27E0(int a1);
int sub_4F28C0(int a1);
int sub_4F2960(int a1);
int sub_4F2B20(int a1);
int sub_4F2B60(int a1);
int sub_4F2C30(int a1);
int nox_xxx_spell_4F2E70(int a1);
int sub_4F2EF0(int a1);
int nox_xxx_playerTryEquip_4F2F70(nox_object_t* a1, nox_object_t* item);
int nox_xxx_playerTryDequip_4F2FB0(nox_object_t* a1, const nox_object_t* object);
int nox_xxx_itemApplyEngageEffect_4F2FF0(nox_object_t* item, int a2);
int nox_xxx_itemApplyDisengageEffect_4F3030(const nox_object_t* object, int a2);
void nox_xxx_inventoryPutImpl_4F3070(nox_object_t* a1, nox_object_t* item, int a3);
bool nox_xxx_playerCheckStrength_4F3180(nox_object_t* a1, nox_object_t* item);
int nox_xxx_pickupDefault_4F31E0(nox_object_t* a1p, nox_object_t* item, int a3);
int nox_xxx_pickupFood_4F3350(int a1, int a2, int a3);
int sub_4F3400(int a1, int a2, int a3);
int nox_xxx_pickupUse_4F34D0(int a1, int a2, int a3);
int nox_xxx_pickupTrap_4F3510(int a1, int a2, int a3);
int nox_xxx_pickupTreasure_4F3580(int a1, int a2, int a3);
int nox_xxx_inventoryServPlace_4F36F0(nox_object_t* a1p, nox_object_t* a2p, int a3, int a4);
int nox_xxx_pickupPotion_4F37D0(nox_object_t* a1, nox_object_t* a2, int a3);
int nox_xxx_pickupAmmo_4F3B00(int a1, nox_object_t* item, int a3, int a4);
int nox_xxx_pickupSpellbook_4F3C60(int a1, int a2, int a3);
int nox_xxx_pickupAbilitybook_4F3CE0(int a1, int a2, int a3);
int sub_4F3DD0(int a1, int a2);
int nox_xxx_xfer_4F3E30(unsigned short a1, nox_object_t* a2, int a3);
int nox_xxx_servMapLoadPlaceObj_4F3F50(nox_object_t* a1, int a2, void* a3);
char sub_4F40A0(nox_object_t* a1);
int nox_xxx_readObjectOldVer_4F4170(int a1, int a2, int a3);
int nox_xxx_mapReadWriteObjData_4F4530(nox_object_t* a1, int a2);
int nox_xxx_XFerDefault_4F49A0(nox_object_t* a1, void* a2);
int nox_xxx_XFerSpellPagePedistal_4F4A20(int a1);
int nox_xxx_XFerReadable_4F4AB0(int a1);
int nox_xxx_XFerExit_4F4B90(int a1);
int nox_xxx_XFerDoor_4F4CB0(int a1);
int nox_xxx_unitTriggerXfer_4F4E50(float a1);
int nox_xxx_XFerHole_4F51D0(int a1);
int nox_xxx_XFerTransporter_4F5300(int a1);
int nox_xxx_XFerElevator_4F53D0(int a1);
int nox_xxx_XFerElevatorShaft_4F54A0(int a1);
int sub_4F5540(int a1);
int nox_xxx_XFerMover_4F5730(int a1);
int nox_xxx_XFerGlyph_4F5890(int a1);
int nox_xxx_XFerInvLight_4F5AA0(int* a1);
int nox_xxx_XFerSentry_4F5E50(int a1);

#endif // NOX_PORT_GAME3_3
#ifndef NOX_PORT_GAME3_2
#define NOX_PORT_GAME3_2

#include "defs.h"

int nox_xxx_updDrawDBall_4CDF80(int a1, int a2);
int sub_4CE0A0(int a1, int a2);
int nox_xxx_updDrawCloud_4CE1D0(int a1, int a2);
int sub_4CE340(int a1, int a2);
int sub_4CE360(int a1, int a2);
int nox_xxx_updDrawColorlight_4CE390(uint32_t* a1, int a2);
void nox_xxx_colorLightAlterB0ArrayColor_4CE440(int a1);
void nox_xxx_colorLightAlterIntensity_4CE610(int a1);
int nox_xxx_colorLightAlterRadius_4CE760(int a1);
void sub_4CE8C0(int a1);
void sub_4CE960(int a1);
int sub_4CEBA0(int a1, char* a2);
void* sub_4CED40(char* a1);
int sub_4CEED0(int a1, int a2);
int sub_4CF060(int a1, unsigned int a2, int* a3, int a4);
int nox_xxx_mapValidateMB_4CF470(char* a1, int a2);
void nox_xxx_mapFindCrown_4CFC30();
int sub_4CFDF0(int a1);
int sub_4CFE00();
int nox_common_checkMapFile_4CFE10(char* a1);
int nox_mapToGameFlags_4CFF50(int a1);
int nox_xxx_mapGetTypeMB_4CFFA0(void* a1);
int sub_4CFFC0(int a1);
nox_object_t* sub_4CFFE0(int a1);
int nox_xxx_interesting_xfer_4D0010(uint32_t* a1, int a2);
int sub_4D0550(char* a1);
int sub_4D0670(char* a1);
void nox_common_maplist_free_4D0970();
nox_map_list_item* nox_common_maplist_first_4D09B0();
nox_map_list_item* nox_common_maplist_next_4D09C0(nox_map_list_item* list);
FILE* nox_xxx_loadMapCycle_4D0A30();
int sub_4D0C70(int a1);
int sub_4D0C80(char* a1);
void sub_4D0CC0(char* a1);
int sub_4D0D50(int a1);
int sub_4D0D70();
int sub_4D0D90(int a1);
void sub_4D0DA0();
int sub_4D0DE0(int a1);
int nox_xxx_mapSelectFirst_4D0E00();
void sub_4D0F30();
char* nox_xxx_getQuestMapFile_4D0F60();
void sub_4D11A0();
void sub_4D11D0();
void sub_4D1210(int a1);
int* sub_4D1250(int a1);
int sub_4D12A0(int a1);
void nox_xxx_mapSwitchLevel_4D12E0(int a1);
void sub_4D15C0();
int nox_xxx_scavengerTreasureMax_4D1600();
void sub_4D1610();
int nox_xxx_servResetPlayers_4D23C0();
void nox_xxx_mapLoad_4D2450(char* a1);
char* nox_xxx_netReportAllLatency_4D3050();
int sub_4D39F0(const char* a3);
void nox_xxx_tileInitdataClear_4D3C50(const void* a1);
unsigned char* sub_4D3C70();
uint32_t* sub_4D3C80(uint32_t* a1);
int nox_xxx_mapGenFixCoords_4D3D90(float2* a1, float2* a2);
int sub_4D3E30(float2* a1, float2* a2);
int sub_4D3FF0(int a1);
unsigned int sub_4D42E0(const char* a1);
char* nox_xxx_getRandMapName_4D4310();
int nox_xxx_mapGenStart_4D4320();
int nox_xxx_mapGenStep_4D44E0();
float* nox_xxx_mapgen_Doors_4D4790();
float* nox_xxx_mapGenMkSmallRoom_4D4F40(uint32_t* a1);
void sub_4D52F0();
int sub_4D5350(uint32_t* a1, int a2, int a3, int a4, int a5);
int nox_xxx_mapGenFillRoom_4D53B0(int a1, int a2, int a3, int a4, int a5);
int sub_4D5630(int a1, int a2, int a3, int a4, int a5);
int sub_4D5D20(uint32_t* a1);
void nox_xxx_mapGenMakeInfo_4D5DB0(void* a1);
int nox_xxx_mapGenStartAlt_4D5F30();
int sub_4D6000(nox_object_t* a1);
int sub_4D60B0();
uint32_t* sub_4D60E0(int a1);
int sub_4D6130(int a1);
int sub_4D6170(int a1);
void sub_4D61B0(int a1);
int sub_4D61F0(int a1);
unsigned int sub_4D6540(int a1);
int sub_4D66E0(unsigned int a1, unsigned int a2, unsigned int a3, unsigned int a4);
int sub_4D6770(int a1);
int sub_4D6880(int a1, int a2);
char* sub_4D6940();
char* sub_4D6950();
int nox_game_sendQuestStage_4D6960(int a1);
int sub_4D6A20(int a1, int a2);
int sub_4D6F30();
int nox_xxx_isQuest_4D6F50();
int nox_xxx_setQuest_4D6F60(int a1);
int sub_4D6F70();
int sub_4D6F80(int a1);
int sub_4D6FA0();
char* sub_4D70B0();
int nox_xxx_bookCreatureTest_4D70C0(int a1);
int sub_4D7100(int a1);
int sub_4D7150();
int sub_4D71E0(int a1);
unsigned int sub_4D71F0();
int sub_4D7280(int a1, char a2);
int sub_4D72C0();
int sub_4D72D0(int a1);
int sub_4D7300();
int sub_4D7430();
int sub_4D7440(int a1);
int sub_4D7450(int a1, short a2);
void sub_4D7480(nox_object_t* a1);
int nox_server_questNextStageThreshold_4D74F0(int lvl);
char sub_4D7520(int a1);
int sub_4D75E0();
int sub_4D75F0(int a1);
void nox_server_checkWarpGate_4D7600();
int sub_4D76E0(int a1);
int sub_4D76F0();
int sub_4D79A0(char a1);
int sub_4D79C0(nox_object_t* a1);
int sub_4D7A60(int a1);
int sub_4D7A80();
int sub_4D7B40();
int nox_xxx_netSendInterestingId_4D7BE0(int a1);
int sub_4D7E50(nox_object_t* a1);
int sub_4D7EA0();
int nox_xxx_netCreatureCmd_4D7EE0(int player, char orderType);
int nox_xxx_netNotifyRate_4D7F10(int a1);
int nox_xxx_netReportObjectPoison_4D7F40(int a1, uint32_t* a2, char a3);
void nox_xxx_netAbilRepotState_4D8100(nox_object_t* a1, char a2, char a3);
void sub_4D81A0(int a1);
int nox_xxx_netReportAnimFrame_4D81F0(int a1, uint32_t* a2);
int nox_xxx_netReportXStatus_4D8230(int a1, uint32_t* a2);
int nox_xxx_netReportPlrStatus_4D8270(int a1);
int nox_xxx_netReportCharges_4D82B0(int a1, nox_object_t* item, char a3, char a4);
uint32_t* sub_4D82F0(int a1, uint32_t* a2);
int nox_xxx_netReportDequip_4D84C0(int a1, const nox_object_t* object);
uint32_t* nox_xxx_netReportEquip_4D8540(int a1, uint32_t* a2, int a3);
int nox_xxx_netReportDequip_4D8590(int a1, const nox_object_t* object);
int nox_xxx_netReportTotalHealth_4D85C0(int a1, uint32_t* a2);
int nox_xxx_netReportUnitCurrentHP_4D8620(int a1, uint32_t* a2);
int nox_xxx_netSendTeam_4D8670(int a1, uint32_t* a2);
char* nox_xxx_netSendPlrHealthToTeam_4D86E0(int a1);
short nox_xxx_netReportHealthDelta_4D8760(int a1, short a2, short a3);
int nox_xxx_itemReportHealth_4D87A0(int a1, nox_object_t* item);
int nox_xxx_netReportStamina_4D8800(int a1, int a2);
int sub_4D8840(int a1, int a2);
int sub_4D8870(int a1, int a2);
int nox_xxx_netReportTotalMana_4D88C0(int a1, int a2);
int nox_xxx_netReportMana_4D8930(int a1, int a2);
char nox_xxx_servSendStats_4D8990(int a1, int a2, char a3);
int nox_xxx_netReportArmorVal_4D8A30(int a1, int a2);
int nox_xxx_netReportPickup_4D8A60(int a1, nox_object_t* item);
int nox_xxx_netReportModifiablePickup_4D8AD0(int a1, nox_object_t* item);
int nox_xxx_netReportDrop_4D8B50(int a1, const nox_object_t* object);
int nox_xxx_netSendDMWinner_4D8B90(int a1, char a2);
int nox_xxx_netSendDMTeamWinner_4D8BF0(int a1, char a2);
int nox_xxx_netFlagballWinner_4D8C40(int a1);
int nox_xxx_netFlagWinner_4D8C40_4D8C80(int a1, char a2);
int nox_xxx_scavengerHuntReport_4D8CD0(int a1);
void nox_xxx_playerIncrementElimDeath_4D8D40(int a1);
int nox_xxx_changeScore_4D8E90(int a1, int a2);
int nox_xxx_playerSubLessons_4D8EC0(int a1, int a2);
int nox_xxx_netReportLesson_4D8EF0(nox_object_t* a1p);
int nox_xxx_netTimerStatus_4D8F50(int a1, int a2);
int nox_xxx_netReportEnchant_4D8F90(int a1, uint32_t* a2);
void nox_xxx_netReportObjHidden_4D8FD0(int a1, uint32_t* a2);
int nox_xxx_netReportUnitHeight_4D9020(int a1, nox_object_t* a2);
int sub_4D90E0(int a1, char a2);
int nox_xxx_earthquakeSend_4D9110(float* a1, int a2);
int nox_xxx_netReportAcquireCreature_4D91A0(int a1, nox_object_t* a2);
int nox_xxx_netFxShield_0_4D9200(int a1, int a2);
int nox_xxx_netMonitorCreature_4D9250(int a1, int a2);
int nox_xxx_netSendUnMonitorCrea_4D92A0(int a1, uint32_t* a2);
int nox_xxx_netReportTeamBase_4D92D0(int a1, int a2);
int nox_xxx_netReportStatsSpeed_4D9360(int a1, uint32_t* a2, char a3, int a4);
uint32_t* nox_xxx_netSendReportNPC_4D93A0(int a1, int a2);
int nox_xxx_netSendJournalAdd_4D9440(int a1, nox_playerInfo_journal* a2p);
int nox_xxx_netSendJournalRemove_4D94A0(int a1, const char* a2);
int nox_xxx_netSendJournalUpdate_4D9500(int a1, int a2);
int nox_xxx_netSendChapterEnd_4D9560(int a1, char a2, int a3);
int nox_xxx_netSendFlagStatus_4D95A0(int a1, char a2, char a3, char a4, short a5);
int nox_xxx_netSendBallStatus_4D95F0(int a1, char a2, short a3);
int nox_xxx_netReportSpellStat_4D9630(int a1, int a2, char a3);
int nox_xxx_netSendSecondaryWeapon_4D9670(int a1, uint32_t* a2, char a3);
int nox_xxx_netMsgLastQuiver_4D96B0(int a1, uint32_t* a2);
int nox_xxx_netMsgInventoryLoaded_4D96E0(int a1);
int nox_xxx_netFriendAddRemove_4D97A0(int a1, uint32_t* a2, int a3);
int sub_4D97E0(int a1);
int nox_xxx_netMsgFadeBeginPlayer(int pl, int a1, int a2);
void nox_xxx_playerReportAnything_4D9900(int a1);
int nox_xxx_netStatsMultiplier_4D9C20(nox_object_t* a1);
int sub_4D9CF0(int a1);
int sub_4D9D20(int a1, nox_object_t* a2);
int sub_4D9D60(int a1, int a2);
int sub_4D9DF0(int a1, int a2, char a3);
int sub_4D9E30(int a1, int a2, char a3);
int nox_xxx_netGauntlet_4D9E70(int a1);
int nox_xxx_netSendLineMessage_4D9EB0(int a1, wchar2_t* a2, ...);
int nox_xxx_printToAll_4D9FD0(char a1, wchar2_t* a2, ...);
int nox_xxx_netInformTextMsg_4DA0F0(int a1, int a2, int* a3);
int nox_xxx_netInformTextMsg2_4DA180(int a1, uint8_t* a2);
void nox_xxx_netPriMsgToPlayer_4DA2C0(nox_object_t* a1, const char* a2, char a3);
int nox_xxx_netPrintLineToAll_4DA390(const char* a1);
nox_object_t* nox_get_and_zero_server_objects_4DA3C0(void);
void nox_set_server_objects_4DA3E0(nox_object_t* p);
nox_object_t* nox_xxx_getObjectByScrName_4DA4F0(char* a1);
int sub_4DA5C0(int a1, const char* a2);
int sub_4DA660(int a1, const char* a2);
nox_object_t* nox_server_getFirstObject_4DA790();
nox_object_t* nox_server_getNextObject_4DA7A0(nox_object_t* obj);
nox_object_t* nox_xxx_getFirstPlayerUnit_4DA7C0();
nox_object_t* nox_xxx_getNextPlayerUnit_4DA7F0(const nox_object_t* obj);
nox_object_t* nox_xxx_getFirstUpdatable2Object_4DA840();
nox_object_t* nox_xxx_getNextUpdatable2Object_4DA850(nox_object_t* obj);
nox_object_t* nox_server_getFirstObjectUninited_4DA870();
nox_object_t* nox_server_getNextObjectUninited_4DA880(nox_object_t* obj);
void nox_xxx_unitAddToUpdatable_4DA8D0(nox_object_t* obj);
void nox_xxx_unitRemoveFromUpdatable_4DA920(nox_object_t* a1);
uint32_t* nox_xxx_unitNewAddShadow_4DA9A0(nox_object_t* a1);
uint32_t* nox_xxx_action_4DA9F0(nox_object_t* a1);
void nox_xxx_createAt_4DAA50(nox_object_t* obj, nox_object_t* owner, float a3, float a4);
void nox_xxx_unitsNewAddToList_4DAC00();
void nox_xxx_servFinalizeDelObject_4DADE0(nox_object_t* item);
void nox_xxx_unitClearPendingMB_4DB030();
void nox_setSaveFileName_4DB130(char* a1);
void sub_4DB170(int a1, void* a2, int a3);
int nox_xxx_gameGet_4DB1B0();
void* sub_4DB1C0();
void nox_xxx_gameSetSwitchSolo_4DB220(int a1);
int nox_xxx_gameIsSwitchToSolo_4DB240();
int nox_xxx_gameIsNotMultiplayer_4DB250();
void nox_savegame_rm_4DBE10(char* saveName, int rmDir);
int nox_client_countSaveFiles_4DC550();
int nox_client_countPlayerFiles02_4DC630();
int nox_client_countPlayerFiles04_4DC7D0();
int sub_4DCC10(nox_object_t* a1p);
int nox_xxx_mapLoadOrSaveMB_4DCC70(int a1);
int sub_4DCC90();
int nox_xxx_game_4DCCB0();
void sub_4DCFB0(nox_object_t* a1);
void sub_4DD0B0(nox_object_t* a1);
char* nox_xxx_gameServerReadyMB_4DD180(int a1);
int nox_xxx_netGuiGameSettings_4DD9B0(char a1, const void* a2, int a3);
void nox_xxx_netNewPlayerMakePacket_4DDA90(unsigned char* buf, nox_playerInfo* pl);
void sub_4DDE10(int a1, nox_playerInfo* a2);
void nox_xxx_playerObserveMonster_4DDE80(nox_object_t* player, nox_object_t* unit);
void nox_xxx_playerObserveClear_4DDEF0(nox_object_t* player);
nox_object_t* nox_xxx_playerGetPossess_4DDF30(nox_object_t* a1);
int nox_xxx_netPlayerIncomingServ_4DDF60(int a1);
int nox_xxx_sendAllPlayerIDs_4DE270(int a1);
char* nox_xxx_newPlayerSendAllPlayers_4DE300(int a1);
int nox_xxx_servMinimapRevealFlag_4DE380(int a1);
void sub_4DE410(int a1);
void nox_xxx_playerForceDisconnect_4DE7C0(int a1);
char* nox_xxx_playerCallDisconnect_4DEAB0(int a1, char a2);
void nox_xxx_playerDisconnByPlrID_4DEB00(int a1);
int nox_xxx_netGameSettings_4DEF00();
char* sub_4DF020();
int nox_xxx_wallSendDestroyed_4DF0A0(int a1, int a2);
int sub_4DF120(void* a1);
int sub_4DF180(void* a1);
void sub_4DF2E0(int a1);
int nox_xxx_netSendSimpleObject2_4DF360(int a1, nox_object_t* a2);
void sub_4DF3C0(nox_playerInfo* pl);
void sub_4DFB50(int a1, int a2);
int nox_xxx_enchantItemTestInventory_4DFBB0(int a1, char a2);
void nox_xxx_effectSpeedEngage_4DFC30(int a1, int a2);
void sub_4DFD10(int a1, int a2);
void nox_xxx_buff_4DFD80(int a1, int a2);
void nox_xxx_checkPoisonProtectEnch_4DFDE0(int a1, int a2);
double nox_xxx_checkFireProtect_4DFE40(uint32_t* a1);
double nox_xxx_checkElectrProtect_4DFF40(uint32_t* a1);
double nox_xxx_getPoisonDmg_4E0040(uint32_t* a1);
void sub_4E0140(int a1, int a2);
void sub_4E0170(int a1, int a2);
float* sub_4E0370(int a1, int a2, int a3, int a4, int a5, float* a6);
float* sub_4E0380(int a1, int a2, int a3, int a4, int a5, float* a6);
int nox_xxx_inversionEffect_4E03D0(int a1, int a2, int a3, int a4, int a5, int* a6);
int nox_xxx_gripEffect_4E0480(int a1, int a2, int a3, int a4, int a5, int* a6);
float* nox_xxx_effectDamageMultiplier_4E04C0(int a1, int a2, int a3, int a4, float* a5);
void nox_xxx_fireEffect_4E0550(void* a1, nox_object_t* a2, nox_object_t* a3, nox_object_t* a4);
void nox_xxx_recoilEffect_4E0640(int a1, int a2, int a3, int a4);
void nox_xxx_lightngEffect_4E06F0(int a1, int a2, int a3, int a4);
int nox_xxx_itemCheckReadinessEffect_4E0960(int a1);
int nox_xxx_effectProjectileSpeed_4E09B0(int a1, int a2, int a3, int a4, int a5);
int nox_xxx_parseDamageTypeByName_4E0A00(const char* a1);
int nox_xxx_projectileReflect_4E0A70(int a1, int a2);
int nox_xxx_damageDefaultProc_4E0B30(int a1, int a2, int a3, int a4, int a5);
void nox_xxx_gameballOnPlayerDamage_4E1230(int a1, int a2, int a3);
int nox_xxx_itemApplyDefendEffect2_4E1320(int a1, int a2, int a3, int* a4, int a5);
int nox_xxx_itemApplyPreDamageEffect_4E13B0(int a1, int a2, int a3, int a4);
int sub_4E1400(int a1, uint32_t* a2);
int sub_4E1470(int a1);
int sub_4E14A0();
int sub_4E14B0(int a1, int a2, int a3, int a4, int a5);
int nox_xxx_damageArmor_4E1500(int a1, int a2, int a3, int a4, int a5);
void nox_xxx_playerDamageWeapon_4E1560(int a1, int a2, int a3, int a4, float a5, int a6);
int nox_xxx_itemDestroyed_4E1650(int a1, uint32_t* a2, unsigned short a3, unsigned short a4);
void nox_xxx_equipDamage_4E16D0(int a1, int a2, int a3, int a4, float a5, int a6);

#endif // NOX_PORT_GAME3_2
#ifndef NOX_PORT_GAME3_1
#define NOX_PORT_GAME3_1

#include "defs.h"

int sub_4B9470(const char** a1);
int sub_4B94E0(nox_drawable* dr);
uint32_t* sub_4B95D0(nox_drawable* dr);
uint32_t* sub_4B9650(int a1);
uint32_t* sub_4B96F0(nox_drawable* dr);
void sub_4BA670(int a1, int a2, int a3, int a4, int a5);
int nox_xxx_prepareLightningEffects_4BAB30();
int sub_4BC720(int a1);
int nox_xxx_updDrawMonsterGen_4BC920();
uint32_t* sub_4BD280(int a1, int a2);
void sub_4BD2D0(void* lpMem);
uint32_t* sub_4BD2E0(uint32_t** a1);
int sub_4BD300(uint32_t* a1, int a2);
uint32_t* sub_4BD340(int a1, int a2, int a3, int a4);
void sub_4BD3C0(void* lpMem);
uint32_t* sub_4BD420(int a1, int a2);
uint32_t* sub_4BD470(uint32_t** a1, int a2);
int sub_4BD600(int a1);
int sub_4BD650(int a1);
int sub_4BD660(int a1);
int sub_4BD680(int a1);
int sub_4BD690(int a1);
int sub_4BD710(int a1);
uint32_t* sub_4BD720(int a1);
void sub_4BD7A0(void* lpMem);
uint32_t* sub_4BD7C0(uint32_t* a1);
void sub_4BD840(int a3);
int sub_4BD8C0(int a1);
int sub_4BD940(int a1);
int sub_4BD9B0(uint32_t* a2);
void sub_4BDA60(void* lpMem);
int sub_4BDA80(int a1);
int sub_4BDB20(int a1);
int sub_4BDB30(int a1);
int sub_4BDB40(int a2);
void sub_4BDB90(uint32_t* a1, uint32_t* a2);
int sub_4BDC00(int a1);
int nox_xxx_loadAdvancedWnd_4BDC10(int* a1);
int sub_4BDC70(int* a1);
int sub_4BDD10();
int sub_4BDDA0();
int nox_xxx_windowAdvancedServProc_4BDDB0(int a1, int a2, int* a3, int a4);
int sub_4BDF30();
int sub_4BDF70(int* a1);
int sub_4BDF90(int* a1);
int sub_4BDFD0();
int sub_4BE120(int a1);
int sub_4BE320();
int sub_4BE330(int a1, unsigned int a2, int* a3, int a4);
int sub_4BE610();
void nox_video_drawAnimatedImageOrCursorAt_4BE6D0(int a1, int a2, int a3);
int sub_4BE800(int a1);
char sub_4BE810(int a1, int a2, int a3, char a4);
void sub_4BEAD0(int2* a1, int2* a2, int2* a3, int2* a4, int a5, int a6);
void sub_4BEDE0(int2* a1, int2* a2, int2* a3, int2* a4, int a5, float a6, int a7, int a8);
int nox_xxx_clientReportSecondaryWeapon_4BF010(int a1);
short sub_4BF7E0(uint32_t* a1);
short sub_4BF9F0(int a1, int a2, int a3, int a4, int a5, int a6, int a7);
int sub_4BFAD0();
void sub_4BFB70(int a1);
void sub_4BFBB0(uint32_t* a1);
int sub_4BFBF0();
int sub_4BFC70();
int sub_4BFC90();
int sub_4BFCD0(int a1, int a2, int* a3, int a4);
void sub_4BFD10();
int sub_4BFD30();
void sub_4BFD40();
int sub_4BFDD0(uint32_t* a1, int a2, unsigned int a3);
int sub_4BFE40();
int nox_gui_itemAmount_init_4BFEF0();
int sub_4C0030(int a1);
int sub_4C01C0(int a1, int a2, int* a3, int a4);
void nox_gui_itemAmount_free_4C03E0();
int nox_gui_itemAmountDialog_4C0430(wchar2_t* title, int x, int y, int a4, int a5, const void* a6, int a7, int a8,
									void* accept, void* cancel);
int sub_4C0560(int a1, int a2);
int sub_4C05F0(int a1, int a2);
int nox_xxx_func_4C0610();
int sub_4C0630(int a1, unsigned int a2, unsigned int a3);
int nox_xxx_clientTrade_0_4C08E0(int a1);
char sub_4C0910(int2* a1);
int sub_4C0C90(int a1, int a2, int* a3, int a4);
int nox_xxx_clientTrade_4C0CE0();
int sub_4C0D00();
int sub_4C1120(int a1, int a2, wchar2_t** a3);
char sub_4C11E0(uint32_t* a1);
int nox_xxx_closeP2PTradeWnd_4C12A0();
int sub_4C12C0();
int nox_xxx_showP2PTradeWnd_4C12D0();
int nox_xxx_netP2PStartTrade_4C1320(int a1);
int sub_4C1410();
int sub_4C1590();
int sub_4C1710(int a1, int a2);
int sub_4C1760(int a1, int a2);
char* nox_xxx_tradeClientAddItem_4C1790(int a1);
int sub_4C18E0(int a1, uint32_t* a2);
char* sub_4C1910(int a1);
char* sub_4C19C0(int a1);
int sub_4C1B50(int a1);
int sub_4C1BC0(int a1);
int nox_xxx_prepareP2PTrade_4C1BF0();
int sub_4C1CA0(int a1);
int nox_xxx_guiDrawSummonBox_4C1FE0(uint32_t* a1);
int nox_xxx_wndSummonGet_4C2410(int2* a1);
int nox_xxx_guiDrawSummon_4C2440(int a1);
int nox_xxx_guiHideSummonWindow_4C2470();
int sub_4C24A0();
int nox_xxx_wndSummonBigButtonProc_4C24B0(int a1, int a2, unsigned int a3);
int sub_4C26F0(void* yTop);
int sub_4C2A00(int a1, int a2, int a3, int a4, short* a5);
int nox_xxx_clientOrderCreature_4C2A60(int a1, unsigned int a2);
int nox_xxx_wndSummonProc_4C2B10(uint32_t* a1, unsigned int a2, unsigned int a3);
int sub_4C2BD0();
int sub_4C2BE0();
int* sub_4C2BF0();
int sub_4C2C20(uint32_t* a1, int a2, unsigned int a3);
int sub_4C2C60(uint32_t* a1, int2* a2);
char* sub_4C2D60();
char* sub_4C2D90(int a1);
int sub_4C2DD0(int a1);
int sub_4C2E00();
char nox_xxx_cliSummonCreat_4C2E50(int a1, int a2, int a3);
int sub_4C2EF0(int a1);
char* sub_4C2F20();
char* sub_4C2F70();
int sub_4C2FD0(int a1);
int sub_4C3030(int* a1, int a2, int a3);
int sub_4C30C0(int* a1, int a2);
void nox_xxx_cliSummonOnDieOrBanish_4C3140(int a1, void* a2);
char* sub_4C31D0(int a1);
int sub_4C3210(int a1);
int nox_xxx_sprite_4C3220(nox_drawable* a1);
int sub_4C3260();
void nox_video_drawCircleColored_4C3270(int a1, int a2, int a3, int a4);
int nox_xxx_spriteDrawCircleMB_4C32A0(int a1, int a2, int a3, int a4);
int sub_4C3390();
int sub_4C3410(int* a1);
int sub_4C3460(int a1);
int sub_4C34A0();
int sub_4C3500();
int sub_4C35B0(int a1);
int sub_4C3A60(uint32_t* a1, unsigned int a2, unsigned int a3, int a4);
int sub_4C3A90(int a1, int a2, int* a3, int a4);
void sub_4C3B70();
int sub_4C3EB0(int a1, int a2, unsigned int a3, int a4);
int sub_4C3FC0(unsigned int a1);
int sub_4C4100(unsigned int a1);
int sub_4C4220();
void sub_4C4260();
int sub_4C4280();
int sub_4C42A0(int2* a1, int2* a2, int* a3, int* a4);
void nox_xxx_drawObject_4C4770_draw(nox_draw_viewport_t* vp, nox_drawable* dr, void* img);
char sub_4C4EC0(uint32_t* a1, int a2);
short nox_xxx_drawShinySpot_4C4F40(nox_draw_viewport_t* vp, nox_drawable* dr);
int nox_xxx_colorInit_4C4FD0();
int sub_4C5020(int a1);
void sub_4C5050();
int sub_4C5060(nox_draw_viewport_t* a1p);
int sub_4C51D0(int2* a1, int2* a2);
int sub_4C5630(int a1, int a2, int a3);
int nox_xxx_sprite_4CA540(uint32_t* a1, int a2);
int sub_4CA650(int a1, int a2);
int sub_4CA720(int a1, int a2);
nox_window* nox_gui_newProgressBar_4CAF10(int a1, int a2, int a3, int a4, int a5, int a6, uint32_t* a7);
int sub_4CAF80(int a1, int a2, int a3, int a4);
int sub_4CAFB0(int a1);
int sub_4CAFF0(uint32_t* a1, uint32_t* a2);
int sub_4CB1A0(uint32_t* a1, int a2);
void nox_client_advVideoOptsLoad_4CB330();
int nox_client_advVideoOpts_New_4CB590(nox_window* a1);
int sub_4CB880();
int sub_4CBB70();
int sub_4CBBB0();
void sub_4CBBF0();
int sub_4CBE70(int a1, int a2, int* a3, int a4);
int sub_4CC140(uint32_t* a1, unsigned int a2, unsigned int a3, int a4);
int sub_4CC170(int a1, int a2, char* a3, int a4);
int sub_4CC280(unsigned int a1);
int sub_4CC3C0(unsigned int a1);
int nox_xxx_updDrawUndeadKiller_4CCCF0();
int sub_4CCD00(int a1, int a2);
int nox_xxx_updDrawFist_4CCDB0(int a1, int a2);
int sub_4CCE70(int a1, uint32_t* a2);
int sub_4CD090(int a1, uint32_t* a2);
int sub_4CD0C0(int a1, uint32_t* a2);
int sub_4CD0F0(int a1, uint32_t* a2);
int sub_4CD120(int a1, uint32_t* a2);
int sub_4CD400(uint32_t* a1, int a2);

#endif // NOX_PORT_GAME3_1
#ifndef NOX_PORT_GAME3
#define NOX_PORT_GAME3

#include "defs.h"
#include "common__savegame.h"

void sub_4A1A40(int a1);
int sub_4A1BE0(int a1);
int nox_client_guiXxxDestroy_4A24A0();
int sub_4A2560(uint32_t* a1, int a2);
int sub_4A25C0(uint32_t* a1, int* a2);
int sub_4A2610(int a1, uint32_t* a2, int* a3);
uint32_t* sub_4A2830(int a1, int a2, uint32_t* a3);
int sub_4A2890();
int sub_4A28B0();
int sub_4A28C0(int a1);
int nox_xxx_wndListboxProcWithoutData10_4A28E0(uint32_t* a1, int a2, unsigned int a3, int a4);
int nox_xxx_wndListBox_4A2D10(int a1, int a2, int a3);
int nox_xxx_wndListboxProcWithData10_4A2DE0(int a1, int a2, unsigned int a3, int a4);
short* sub_4A3090(short* a1, int a2);
int nox_xxx_wndListboxProcPre_4A30D0(nox_window* win, unsigned int a2, uint32_t a3, int a4);
int nox_xxx_wndListBox_4A3A70(int a1);
int nox_xxx_wndListBoxAddLine_4A3AC0(wchar2_t* a1, int a2, uint32_t* a3);
void nox_xxx_wndListboxInit_4A3C00(int a1, int a2);
int nox_xxx_wndListboxDrawNoImage_4A3C50(uint32_t* a1, int a2);
int nox_xxx_wndListboxDrawWithImage_4A3FC0(uint32_t* a1, int a2);
int sub_4A4800(int a1);
int nox_game_showSelClass_4A4840();
int sub_4A4970();
int sub_4A49A0();
int sub_4A49D0(int yTop, int a2);
int sub_4A50A0();
int sub_4A50D0();
int sub_4A5E90();
unsigned char* sub_4A61E0(uint32_t* a1, int a2, unsigned char* a3);
int sub_4A6890();
int sub_4A6B50(wchar2_t* a1);
int sub_4A6C90();
int sub_4A6D20(int a1, int a2);
int sub_4A6DC0(uint32_t* a1, int a2);
int sub_4A7270(int a1, int a2, unsigned int a3, int a4);
uint32_t* sub_4A72D0(unsigned short a1);
int sub_4A7330(int a1, int a2, int* a3, unsigned int a4);
uint32_t* sub_4A7530(unsigned short a1);
int sub_4A7580(int a1, int a2);
int sub_4A7A60(int a1);
int sub_4A7A70(int a1);
int sub_4A7A80(const char* a1);
int sub_4A7AC0(const char* a1);
int sub_4A7B00(const char* a1);
int sub_4A7B40(char* a1);
int sub_4A7BA0(char* a1);
int sub_4A7BC0(const char* a1);
int sub_4A7C00(const char* a1);
int sub_4A7C40(char* a1);
int sub_4A7C60(char* a1);
int sub_4A7CE0(char* a1);
int sub_4A7D00(const char* a1);
int sub_4A7D50(char* a1);
char* sub_4A7EF0();
int nox_xxx_wndRadioButtonProc_4A84E0(uint32_t* a1, int a2, int a3, int a4);
int nox_xxx_wndRadioButtonSetAllFn_4A87E0(int a1);
int nox_xxx_wndRadioButtonDrawNoImg_4A8820(int a1, int a2);
int nox_xxx_wndRadioButtonDraw_4A8A20(int a1, int a2);
nox_window* nox_gui_newButtonOrCheckbox_4A91A0(nox_window* parent, int a2, int a3, int a4, int a5, int a6, nox_window_data* draw);
int nox_xxx_wndRadioButtonProcPre_4A93C0(int a1, int a2, wchar2_t* a3, int a4);
int nox_xxx_compassGenStrings_4A9C80();
int nox_game_showOptions_4AA6B0();
int sub_4AA9C0();
int sub_4AAA10();
uint32_t* sub_4AAA70();
int sub_4AABE0(int a1, int a2, int* a3, int a4);
int sub_4AB0C0();
int sub_4AB260();
int sub_4AB340(int a1, int a2, int a3, int a4);
int sub_4AB390(int a1, int a2, int* a3, int a4);
int sub_4AB420(int* a1);
int sub_4AB470();
int sub_4AB4A0(int a1);
int sub_4AB4D0(int a1);
int sub_4ABDA0(int a1, short a2, short a3, uint32_t* a4);
int nox_xxx_spriteLoadFromMap_4AC020(int thingInd, short a2, uint32_t* a3);
int nox_client_mapSpecialRWObjectData_4AC610();
int nox_xxx_clientLoadSomeObject_4AC6E0(unsigned short a1);
int sub_4AC7B0(int a1);
int nox_xxx_colorLightClientLoad_4AC980(int a1);
int nox_xxx_cliLoadTeamBase_4ACE00(int a1);
int sub_4ACEF0(int a1);
int sub_4AD040(int a1);
int sub_4AD570();
int nox_xxx_windowServerOptionsGeneralProc_4AD5D0(int a1, int a2, int* a3, int a4);
int sub_4AD820();
int sub_4AD9B0(int a1);
int sub_4ADA40();
int nox_game_initOptionsInGame_4ADAD0();
int sub_4ADEF0(uint32_t* a1, int a2);
int nox_xxx_windowOptionsProc_4ADF30(int a1, int a2, int* a3, int a4);
int sub_4AE3B0();
int sub_4AE3D0();
void sub_4AE6F0(int a1, int a2, int a3, int a4, int a5);
long long sub_4AEE30();
void nox_client_drawPoint_4B0BC0(int a1, int a2, int a3);
int sub_4B4860(int a1, int a2, int a3, int a4);
int nox_xxx_wndScrollBoxDraw_4B4BA0(int a1, int a2, unsigned int a3, int a4);
nox_window* nox_gui_newSlider_4B4EE0(int a1, int a2, int a3, int a4, int a5, int a6, uint32_t* a7, float* a8);
int sub_4B5010(int a1, unsigned int a2, int a3, int a4);
int sub_4B51A0(int a1);
int sub_4B51E0(int a1, int a2);
int sub_4B52C0(int a1, int a2);
int nox_xxx_wndScrollBoxProc_4B5320(int a1, unsigned int a2, int a3, unsigned int a4);
int nox_xxx_wndScrollBoxSetAllFn_4B5500(int a1);
int nox_xxx_wndScrollBoxDraw_4B5540(int a1, int a2);
int nox_xxx_wndScrollBoxDraw_4B5620(uint32_t* a1, int a2);
int nox_xxx_wndScrollBoxButtonCreate_4B5640(int a1, int a2, int a3);
void sub_4B5700(nox_window* a1, void* a2, void* a3, void* a4, void* a5, void* a6);
int sub_4B5CD0();
int sub_4B63B0(int2* a1, int2* a2);
int sub_4B64C0();
void sub_4B6720(int2* a1, int a2, int a3, char a4);
int sub_4B6880(uint32_t* a1, int a2, int a3, int a4);
int sub_4B6970(uint32_t* a1, nox_drawable* dr, int a3, int a4);
short sub_4B69F0(int a1);
int sub_4B6B80(int* a1, nox_drawable* dr, int a3);
uint32_t* nox_xxx_netHandleSummonPacket_4B7C40(short a1, unsigned short* a2, unsigned short a3, unsigned char a4,
											   short a5);
void sub_4B7EE0(short a1);
int nox_xxx_spriteShieldLoad_4B7F90();
uint32_t* nox_xxx_fxShield_4B8090(unsigned int a1, int a2);
void nox_xxx_spriteScanForShield_4B81E0(int a1, int a2);
uint32_t* sub_4B8E10(uint32_t* a1, char* a2);

#endif // NOX_PORT_GAME3
#ifndef NOX_PORT_GAME2_3
#define NOX_PORT_GAME2_3

#include "defs.h"

void sub_48C580(pixel8888* a1, int num);
unsigned int sub_48C690(int a1, int a2, int a3, int a4);
unsigned int sub_48C6B0(int a1, int a2);
int nox_xxx_showObserverWindow_48CA70(int a1);
int sub_48CAD0();
int sub_48D000_initGuiKick();
int nox_xxx_guiKick_48D0A0(int a1, int a2, int* a3, int a4);
int sub_48D120();
char* nox_xxx_voteSend_48D260(wchar2_t* a1);
char* nox_xxx_netSendRenameMb_48D2D0(wchar2_t* a1);
int sub_48D340();
int sub_48D3B0();
int nox_xxx_clientVote_48D3E0();
uint32_t* sub_48D410();
int sub_48D450();
int sub_48D4A0();
int sub_48D4B0(int a1);
int sub_48D4F0(unsigned short a1, unsigned short a2);
int sub_48D560(unsigned short a1);
uint32_t* sub_48D5A0(int a1);
int sub_48D660();
int sub_48D740();
void sub_48D760();
int* sub_48D7B0();
int sub_48D800();
int nox_xxx_netCode2ChatBubble_48D850(int a1);
void sub_48D990(nox_draw_viewport_t* a1);
void sub_48DCF0(uint32_t* a1);
bool sub_48E000(int4* a1, uint32_t* a2);
char sub_48E240(int a1, uint32_t* a2);
int sub_48E480(uint32_t* a1, uint32_t* a2);
int sub_48E530(int a1, int a2);
int sub_48E5C0(uint32_t* a1, int a2, int a3);
int* sub_48E6A0(char a1, uint32_t* a2, uint32_t* a3, int* a4, int* a5);
void sub_48E8E0(int a1);
void sub_48E940();
nox_drawable* nox_xxx_spriteCreate_48E970(int a1, unsigned short a2, int a3, int a4);
char* sub_4947E0(int a1);
int sub_4948B0(int a1);
int nox_xxx_netCliProcUpdateStream_494A60(unsigned char* a1, int a2, uint32_t* a3);
unsigned char* nox_xxx_netCliUpdateStream2_494C30(unsigned char* a1, int a2, int* a3);
int sub_494F00();
char* sub_494FF0();
char* sub_495020(int a1);
int sub_495060(int a1, short a2, short a3);
int sub_4950C0(int a1);
int sub_4950F0(int a1, char a2);
int sub_495120(int a1, short a2, short a3);
int sub_495150(int a1, short a2);
int sub_495180(int a1, uint16_t* a2, uint16_t* a3, uint8_t* a4);
char* sub_4951C0();
int nox_xxx_unitSpriteCheckAlly_4951F0(int a1);
int sub_495210(int a1);
int* sub_495500(int* a1);
int sub_4958F0();
int nox_xxx_allocClassListFriends_495980();
void sub_4959B0();
int sub_4959D0();
uint32_t* nox_xxx_cliAddObjFriend_4959F0(int a1);
void sub_495A20(int a1);
int sub_495A80(int a1);
uint32_t* sub_495BB0(nox_drawable* dr, nox_draw_viewport_t* vp);
int sub_495BF0(int a1, int a2, int a3);
int sub_495D00(uint32_t* a1, int a2, uint32_t* a3);
nox_point sub_499290(int a1);
int sub_4992B0(int a1, int a2);
int nox_xxx_loadReflSheild_499360();
int sub_499450();
int nox_xxx_drawShield_499810(nox_draw_viewport_t* vp, nox_drawable* dr);
uint32_t* nox_xxx_fxDrawTurnUndead_499880(short* a1);
void nox_xxx_drawPointMB_499B70(int xLeft, int yTop, int a3);
void nox_xxx_bookRewardCli_499CF0(int* a1, int a2, int a3);
void sub_499F60(int a1, int a2, int a3, short a4, char a5, char a6, char a7, char a8, char a9, int a10);
void* nox_npc_by_id(int id);
char* nox_xxx_clientEquip_49A3D0(char a1, int a2, int a3, int a4);
int nox_xxx_allocArrayHealthChanges_49A5F0();
void sub_49A630();
uint16_t* nox_xxx_cliAddHealthChange_49A650(int a1, short a2);
void sub_49A6A0(nox_draw_viewport_t* vp, nox_drawable* dr);
void sub_49A880(int a1);
int sub_49A8C0();
void nox_xxx_sprite_49AA00_drawable(nox_drawable* dr);
void nox_xxx_updateSpritePosition_49AA90(nox_drawable* dr, int a2, int a3);
void nox_xxx_forEachSprite_49AB00(int4*, void*, int);
nox_drawable* nox_drawable_find_49ABF0(nox_point* pt, int r);
int sub_49AEA0();
int sub_49B3E0();
int sub_49B420(int a1, int a2, int* a3, int a4);
int sub_49B490();
int sub_49B6B0();
void nox_xxx_consoleEsc_49B7A0();
void nox_xxx_spriteTransparentDecay_49B950(nox_drawable* a1, int a2);
void nox_xxx_spriteToSightDestroyList_49BAB0_drawable(nox_drawable* a1);
void sub_49BBB0();
void sub_49BBC0();
void nox_xxx_spriteToList_49BC80_drawable(nox_drawable* a1);
void sub_49BCD0(nox_drawable* dr);
uint32_t* nox_xxx_clientAddRayEffect_49C160(int a1);
void nox_xxx_clientRemoveRayEffect_49C450(int a1);
void nox_xxx_spriteDeleteSomeList_49C4B0();
void nox_xxx_sprite_49C4F0();
int nox_xxx_wnd_49C760(int a1, int a2, int* a3, int a4);
int sub_49C7A0();
int sub_49C810();
int sub_49CA60(int a1, int a2, int* a3, int a4);
int sub_49CB40();
void nox_client_drawBorderLines_49CC70(int xLeft, int yTop, int a3, int a4);
void sub_49CD30(int xLeft, int yTop, int a3, int a4, int a5, int a6);
void nox_client_drawRectFilledOpaque_49CE30(int xLeft, int yTop, int a3, int a4);
void nox_client_drawRectFilledAlpha_49CF10(int xLeft, int yTop, int a3, int a4);
int sub_49D1C0(void* a1, int a2, int a3);
void sub_49E3C0(uint32_t* a1, int a2, unsigned int a3);
int nox_client_drawLineFromPoints_49E4B0();
int sub_49E4F0(int a1);
void nox_client_drawPixel_49EFA0(int a1, int a2);
void nox_client_drawAddPoint_49F500(int a1, int a2);
void nox_xxx_rasterPointRel_49F570(int a1, int a2);
int sub_49F6D0(int a1);
int4* nox_client_copyRect_49F6F0(int xLeft, int yTop, int a3, int a4);
int4* sub_49F780(int xLeft, int a2);
void sub_49F7C0_def();
void nox_xxx_wndDraw_49F7F0();
int sub_49F860();
int4* nox_xxx_utilRect_49F930(int4* a1, int4* a2, int4* a3);
void sub_49FDB0(int a1);
uint32_t* sub_49FF20();
int* sub_49FFA0(int a1);
char* sub_4A0020();
int nox_wol_servers_addResult_4A0030(nox_gui_server_ent_t* srv);
void nox_wol_servers_sortBtnHandler_4A0290(int id);
int* sub_4A0360();
int* sub_4A0390();
int sub_4A0410(const char* a1, short a2);
int* sub_4A0490(int a1);
int* sub_4A04C0(int a1);
nox_window* nox_new_window_from_file(char* cname, void* fnc);

unsigned sub_48C730(unsigned int a1);

#endif // NOX_PORT_GAME2_3
#ifndef NOX_PORT_GAME2_2
#define NOX_PORT_GAME2_2

#include "defs.h"

int sub_476080(unsigned char* a1);
int sub_4761B0(nox_drawable* a1p);
void nox_video_setCutSize_4766A0(int a1);
int nox_video_getCutSize_4766D0();
void nox_draw_setCutSize_476700(int cutPerc, int a2);
void* sub_476AE0(nox_draw_viewport_t* vp, nox_drawable* dr);
short sub_476D70(uint32_t* a1, int* a2, unsigned int a3);
int nox_client_setPhonemeFrame_476E00(int a1);
uint32_t* sub_476E20();
int sub_476E90();
unsigned int nox_xxx_packetGetMarshall_476F40();
void nox_xxx_clientEnumHover_476FA0();
void nox_xxx_clientOnCursorHover_477050(int arg0, int a2);
int nox_xxx_guiCursor_477600();
int nox_client_setCursorType_477610(int a1);
int nox_xxx_cursorGetTypePrev_477630();
void nox_xxx_bookSaveSpellForDragDrop_477640(int a1, int a2);
void nox_xxx_bookSpellDnDclear_477660();
int nox_xxx_bookGetSpellDnDType_477670();
void nox_xxx_cursorSetDraggedItem_477690(nox_drawable* a1);
void nox_xxx_cursorResetDraggedItem_4776A0();
void nox_xxx_cursorSetTooltip_4776B0(wchar2_t* a1);
int sub_478000();
int sub_478030();
int sub_478040();
int sub_478080(int a1);
char* sub_4780A0(int a1);
int sub_478110();
int sub_478480(int a1, int a2, int* a3, int a4);
int sub_478650(int a1, int a2, unsigned int a3);
void sub_478850(int a1, short a2, int a3, int a4);
int sub_478970();
int sub_478A70(int2* a1);
int sub_478C80();
int sub_478E50(int a1, int a2, unsigned int a3);
uint32_t* sub_478F10();
int sub_478F80();
char* nox_xxx_getShopPic_4790F0(int a1);
void sub_479280();
uint32_t* sub_479300(int a1, int a2, int a3, short a4, int a5);
char* sub_4793C0(int a1);
char* sub_479430();
char* sub_479480(int a1);
int sub_4794D0(int a1, int a2);
int sub_479590();
void sub_4795A0(int a1);
int sub_479690(int a1, short a2, short a3, int a4);
int nox_client_tradeXxxSellAccept_4796D0(short a1);
int sub_479700(short a1, char a2);
void sub_479810();
int sub_479820(int a1, short a2);
int sub_479840(short a1);
int sub_479870();
bool sub_479880(uint32_t* a1);
int sub_4798A0(uint32_t* a1);
int sub_479950();
int sub_4799A0();
int nox_xxx_guiDialog_479B00(int a1, int a2, int* a3, int a4);
int sub_479BE0(uint32_t* a1, int a2, unsigned int a3, int a4);
int sub_479C40(uint32_t* a1, int a2);
int sub_479CB0(int a1, int a2);
int sub_479D00();
int sub_479D10();
int sub_47A260();
void nox_client_drawImageAt_47D2C0(nox_video_bag_image_t* img, int x, int y);
void sub_47D370(int a1);
int sub_47D380(int a1, int a2);
void sub_47D400(int a1, char a2);
int nox_draw_imageMeta_47D5C0(nox_video_bag_image_t* a1, uint32_t* a2, uint32_t* a3, uint32_t* a4, uint32_t* a5);
unsigned char sub_47DBC0();
int sub_47FCE0(uint32_t* a1, int a2);
uint8_t* sub_480220(uint8_t* a1, uint8_t* a2);
uint16_t* sub_480250(uint8_t* a1, uint16_t* a2);
void sub_480860(uint16_t* a1, uint16_t* a2, int a3, int* a4, int* a5);
int* nox_xxx_edgeDraw_480EF0(int a1, int a2, int a3, int* a4, int* a5, int a6, int a7, int a8, int a9, int a10);
void sub_481410();
char nox_xxx_tileDraw_4815E0(uint32_t* a1, int a2);
char* sub_481770(uint32_t* a1, int a2, unsigned short a3);
char nox_xxx_drawTexEdgesProbably_481900(uint32_t* a1, uint32_t* a2);
void nox_xxx_tileCallDrawEdges_481BF0(int a1, int a2);
int nox_xxx_tileCheckRedrawMB_482570(nox_draw_viewport_t* vp);
int nox_xxx_tileDrawImpl_4826A0(nox_draw_viewport_t* vp);
short sub_4831C0(int a1, int a2);
int sub_484450(int a1, int a2);
uint32_t* nox_xxx_spriteChangeLightColor_484BE0(uint32_t* a1, int a2, int a3, int a4);
long long sub_484C00(int a1, int a2);
long long nox_xxx_spriteChangeLightSize_484C30(int a1, int a2);
int sub_484C60(float a1);
int sub_484CE0(int a1, float a2);
int nox_xxx_spriteChangeIntensity_484D70_light_intensity(int a1, float a2);
int nox_thing_read_floor_485B30(nox_memfile* f, char* a2);
int nox_thing_read_edge_485D40(nox_memfile* f, char* a2);
int nox_xxx_tile_486060();
int sub_4862E0(void* a3, int a4);
void* sub_486320(void* a1, int a2);
int sub_486350(void* a1, int a2);
int sub_486380(void* a1, uint32_t a2, int32_t a3, uint32_t a4);
int sub_4863B0(void* a2);
void* sub_4864A0(void* a3);
int sub_486520(void* a2);
int sub_486550(void* a1);
void sub_486570(void* a1, void* a2);
void sub_486620(void* a1);
int sub_486640(void* a1, int a2);
int sub_4866D0(uint32_t* a1, int a2);
unsigned int sub_486A10(int a1, void* a2);
int sub_486AA0(uint32_t* a1, int a2, uint32_t* a3);
int sub_486B60(int a1, int a2);
signed int sub_486DB0(int a1, char* a2, signed int a3);
FILE* sub_486E00(int a1);
int sub_486E30(int a1, uint32_t* a2);
int sub_486E90(int a1);
uint32_t* sub_486FA0(int a1);
uint32_t* sub_486FE0(int a1);
void sub_487030(void* lpMem);
void sub_487050(uint32_t* a1);
void sub_487070(void* lpMem);
void sub_487090(uint32_t** a1);
void sub_4870A0();
int* sub_4870E0(int* a1);
int* sub_487100(int** a1);
uint32_t* sub_487150(int a1, const void* a2);
uint32_t* sub_4871C0(int a1, int a2, const void* a3);
void sub_4872C0(void* lpMem);
int sub_487310(uint32_t* a1);
int* sub_487360(int a1, int** a2, int* a3);
int sub_4873C0(int a3);
int sub_487590(int a1, const void* a2);
int* sub_4875B0(int* a1);
int* sub_4875D0(int** a1);
int sub_4875F0();
void sub_487680(void* lpMem);
void* sub_4876A0(uint32_t** a1);
uint32_t* sub_487750(int a1);
int sub_487790(int a1, int a2);
int* sub_4877D0(int a1, int* a2);
int* sub_4877F0(int** a1);
int* sub_487810(int a1, int a2);
int sub_487910(int a1, int a2);
int* sub_487970(int a1, int a2);
void sub_487C30(uint32_t* a1);
int sub_487C50(int a1, uint32_t* a2);
int sub_487C80(int a1);
int sub_487D00(uint32_t* a1);
uint32_t* sub_487D30(uint32_t* a1, int a2, int a3);
int sub_487D60(int a1);
int nox_xxx_wndEditProc_487D70(nox_window* a1, int a2, int a3, int a4);
int nox_xxx_wndEditDrawNoImage_488160(int a1, int a2);
nox_window* nox_gui_newEntryField_488500(nox_window* a1, int a2, int a3, int a4, int a5, int a6, int a7, wchar2_t* a8);
int nox_xxx_wndEditProcPre_488710(int a1, unsigned int a2, wchar2_t* a3, int a4);
int nox_xxx_wndEdit_488830(int a1);
int nox_xxx_wndEditDrawWithImage_488870(int a1, int a2);
int sub_488B60();
int sub_488BA0();
void nox_xxx_onChar_488BD0(unsigned short a1);
int nox_xxx_wndStaticDrawNoImage_488D00(nox_window* a1p, nox_window_data* a2p);
nox_window* nox_gui_newStaticText_489300(nox_window* a1, int a2, int a3, int a4, int a5, int a6, nox_window_data* a7p, nox_staticText_data* a8p);
int sub_4896E0();
int sub_489870();
int nox_xxx_checkSomeFlagsOnJoin_4899C0(nox_gui_server_ent_t* srv);
uint32_t* sub_489B80(int a1);
void sub_489DC0();
int nox_xxx_windowMplayFilterProc_489E70(int a1, int a2, int* a3, int a4);
int sub_489FB0();
int nox_xxx_setSomeFunc_48A210(int a1);

#endif // NOX_PORT_GAME2_2
#ifndef NOX_PORT_GAME2_1
#define NOX_PORT_GAME2_1

#include "common__savegame.h"
#include "defs.h"

int sub_460D40();
int sub_460D50();
int nox_xxx_cliPrepareGameplay1_460E60();
int sub_460EA0(int a1);
void sub_460EB0(int a1, char a2);
void sub_461010();
void sub_461060();
char* sub_461090(int a1, int a2);
char* sub_4610D0(unsigned char a1);
char* sub_461120(int a1, int a2);
int sub_461160(int a1);
int sub_4611A0();
int sub_4611B0();
void nox_xxx_netAbilityRewardCli_4611E0(int a1, int a2, char* a3);
int nox_xxx_buttonFindFirstEmptySlot_461250();
int sub_4612A0();
int nox_xxx_buttonHaveSpellInBarMB_4612D0(int a1);
void nox_xxx_buttonSetImgMB_461320(int a1, uint32_t* a2);
int sub_461360(int a1);
int sub_461400();
int sub_461440(int a1);
int sub_461450();
void nox_xxx_playerInitColors_461460(nox_playerInfo* pl);
char* sub_461520();
int nox_xxx_clientSetAltWeapon_461550(int a1);
int sub_4615C0();
int sub_461600(int a1);
int nox_xxx_send2ServInvenFail_461630(short a1);
int sub_461930();
int* sub_461970(int a1, int a2);
char* sub_4619F0();
unsigned char* sub_461B50();
uint64_t** sub_461E60(uint64_t*** a1);
char* sub_461EF0(int a1);
int sub_461F90(int a1);
int sub_4622E0(int a1);
int nox_xxx_clientEquip_4623B0(int a1);
uint32_t* sub_4623E0(uint32_t* a1, int a2);
int sub_4624D0(int a1);
int sub_4625D0(uint32_t* a1);
double sub_4626C0(int a1);
double sub_462700(int a1);
int sub_463370(uint32_t* a1, nox_point* pos, uint32_t* a3);
int sub_4633B0(int a1, float* a2, float* a3);
int sub_463420(int a1);
int nox_xxx_inventoryDrawAllMB_463430(int a1);
int nox_xxx_guiDrawInventoryTray_4643B0(int a1, int a2);
int sub_464770(int a1, int a2, unsigned int a3);
int sub_464B40(int a1, int a2);
int nox_xxx_clientDequip_464B70(int a1);
int nox_xxx_XorEaxEaxSub_464BA0();
int nox_xxx_inventoryWndProc_464BB0(int a1, int a2);
int nox_xxx_trade_4657B0(short a1);
char nox_xxx_clientTradeMB_4657E0(uint32_t* a1);
int nox_xxx_clientTrade_465870(short a1);
void sub_4658A0(int a1, int2* a2);
int sub_465990(uint32_t* a1);
int nox_xxx_clientDrop_465BE0(int2* a1);
int nox_xxx_clientKeyEquip_465C30(int a1, int a2);
void nox_xxx_clientUse_465C70(int a1);
int sub_465CA0();
void sub_465CD0(uint32_t* a1, int a2, int a3, int a4);
int sub_465D50_draw(int a1);
int sub_465DE0(int a1);
int nox_xxx_wndCreateInventoryMB_465E00();
int nox_xxx_movEax1Sub_4661C0();
int sub_466220(int a1, int a2, int* a3, int a4);
int sub_466550(int a1, unsigned int a2);
int nox_xxx_inventoryDrawProc_466580(uint32_t* a1);
int sub_466620(int a1, int a2, unsigned int a3);
int sub_466950(int a1);
int sub_466BA0(uint32_t* a1, int a2, unsigned int a3, int a4);
int sub_466BF0(int a1, int a2, unsigned int a3, int a4);
int sub_466C40(int a1);
int sub_466ED0(int a1);
int sub_466F50(uint32_t* a1, int* a2);
char* nox_xxx_inventoryLoadImages_467050();
void nox_client_invAlterWeapon_4672C0();
int sub_4673F0(int a1, int a2);
int sub_467410(int a1);
char sub_467420(char a1);
unsigned char sub_467430();
int sub_467440(int a1);
int sub_467450(int a1);
int sub_467470(int a1, float a2);
int sub_467490(int a1);
int sub_4674A0();
void nox_window_set_visible_unk5(int visible);
void nox_xxx_cliUseCurePoison_4674E0(int a1);
char* nox_xxx_cliInventoryFirstItemByTT_467520(int a1);
int sub_467590();
int sub_4675B0();
short sub_4675E0(int a1, short a2, short a3);
int sub_467650();
void sub_467680();
nox_window* nox_xxx_wndGetHandle_4676A0();
int sub_4676D0(int a1);
int sub_467700(int a1);
int sub_467740(int a1);
int sub_467810(int a1, int a2);
int sub_467850(int a1);
char* sub_467870(int a1, int a2);
int sub_4678B0();
int sub_4678C0();
int sub_4678D0();
char* sub_467930(int a1, int a2, int a3);
int sub_467980();
int sub_467B00(int a1, int a2);
int sub_467BB0();
int sub_467C10();
int nox_client_toggleInventory_467C60();
int sub_467C80();
int sub_467CD0();
char* sub_469920(nox_point* a1);
int sub_469B90(int* a1);
char* nox_xxx_getAmbientColor_469BB0();
int sub_469FA0();
void* nox_xxx_getWallSprite_46A3B0(int a1, int a2, int a3, int a4);
void nox_xxx_getWallDrawOffset_46A3F0(int a1, int a2, int a3, int a4, int* px, int* py);
void nox_client_chatStart_46A430(int a1);
int sub_46A4A0();
size_t nox_xxx_cmdSayDo_46A4B0(wchar2_t* a1, int a2);
int sub_46A5D0(uint32_t* a1, int a2);
int sub_46A6A0();
uint32_t* sub_46A730();
int sub_46A7E0(uint32_t* a1, int a2, int a3, int a4);
int sub_46A820(int a1, int a2, int a3, int a4);
int sub_46A860();
int nox_xxx_wndRetNULL_46A8A0();
int nox_xxx_wndRetNULL_0_46A8B0();
int sub_46AE10(int a1, int a2);
int nox_xxx_wndSetOffsetMB_46AE40(int a1, int a2, int a3);
int nox_xxx_wndSetIcon_46AE60(int a1, int a2);
int nox_xxx_wndSetIconLit_46AEA0(int a1, int a2);
int sub_46AEC0(int a1, int a2);
int sub_46AEE0(int a1, int a2);
wchar2_t* sub_46AF00(void* a1);
void* sub_46AF40(void* a1);
int nox_gui_windowCopyDrawData_46AF80(nox_window* win, const void* p);
nox_window* sub_46B630(nox_window* a1p, int a2, int a3);
int nox_xxx_wnd_46C2A0(nox_window* a1p);
nox_window* nox_client_getWin1064916_46C720();
int sub_46D6F0();
int sub_46DB80();
int sub_46DC00(int a1, unsigned char a2, int a3);
int sub_46DC30(int a1, unsigned char a2, wchar2_t* a3, ...);
char* sub_46DCC0();
int sub_46E080(int a1);
int sub_46E130(int a1);
unsigned short* sub_46E170(wchar2_t* a1);
int sub_46E1E0(int a1);
char* sub_46E4E0();
int sub_46F060();
int nox_xxx_Proc_46F070();
void sub_46FAE0();
unsigned char sub_46FE60(int a1);
unsigned char sub_46FEB0(unsigned char a1);
char sub_46FEE0();
char sub_46FF70(int a1);
unsigned char sub_46FFD0();
void sub_4703F0();
void sub_470510();
int sub_470580();
void sub_4705B0();
char sub_4705F0(char a1, char a2, short a3);
char sub_470650(char a1, short a2);
int sub_470680();
int sub_4706A0();
int nox_xxx_playerGet_470A90();
void nox_xxx_cliShowHideTubes_470AA0(int a1);
unsigned char* nox_xxx_guiHealthManaColorInit_470B00();
int sub_470C40(int a1);
int nox_xxx_cliSetTotalHealth_470C80(int a1, int a2);
int sub_470CB0(int a1);
int sub_470CC0();
int sub_470CD0();
int nox_xxx_cliSetManaAndMax_470CE0(int a1, int a2);
int nox_xxx_cliSetMana_470D10(int a1);
int sub_470D20(int a1, int a2);
void sub_470D70();
int sub_470D90(int a1, int a2);
int nox_xxx_cliGetMana_470DD0();
int sub_470DE0();
int sub_470E90(int a1, int a2);
void nox_win_init_cur_weapon(nox_window* a1, int a2, int a3, int w, int h);
int sub_470F40_draw(nox_window* win);
int sub_471250(uint32_t* a1);
int sub_471450(uint32_t* a1);
int nox_xxx_guiBottleSlotDrawFn_471A80(uint32_t* a1);
int nox_xxx_guiBottleSlotProc_471B90(int a1, int a2);
int nox_xxx_drawHealthManaBar_471C00(int a1);
int sub_472080();
int sub_4720C0(int xLeft, int a2);
int nox_xxx_guiHealthManaTubeProc_472100(int a1, int a2);
int sub_4721A0(int a1);
int nox_xxx_cliPrepareGameplay2_4721D0();
void nox_client_quickHealthPotion_472220();
void nox_client_quickManaPotion_472240();
void nox_client_quickCurePoisonPotion_472260();
wchar2_t* sub_472280();
unsigned char* sub_472310();
void nox_client_mapZoomIn_4724E0();
void nox_client_mapZoomOut_472500();
int nox_xxx_cliSetMinimapZoom_472520(int a1);
int sub_472540(int a1);
void nox_xxx_drawMinimap4Sprite_4725C0(int a1);
int nox_xxx_cliDrawMinimap_472600(int a1, int a2);
int sub_4730D0(int2* a1, unsigned char a2, int a3);
int sub_473380(int a1, int a2, int a3, int a4, int a5);
int sub_4733B0(uint32_t* a1);
int sub_473420(uint32_t* a1);
void nox_video_drawCircleRad3_4734F0(int* a1);
int nox_client_drawRectLines_473510(int a1, int a2, int a3, int a4);
void nox_xxx_minimapDrawPoint_473570(int xLeft, int yTop);
void sub_4735C0(int xLeft, int yTop);
char nox_client_toggleMap_473610();
int sub_473670();
int nox_xxx_drawMinimapAndLines_4738E0();
void nox_xxx____setargv_11_473920();
char* sub_473930();
int sub_473960();
void sub_473970(int2* a1, int2* a2);
int sub_4739E0(uint32_t* a1, int2* a2, int2* a3);
int sub_473A10(uint32_t* a1, int2* a2, uint32_t* a3);
void nox_xxx_drawWalls_473C10(nox_draw_viewport_t* vp, void* data);
int sub_474B40(nox_drawable* dr);
int nox_xxx_sprite_4756E0_drawable(nox_drawable* dr);
int nox_xxx_sprite_475740_drawable(nox_drawable* dr);
int nox_xxx_sprite_4757A0_drawable(nox_drawable* dr);
int sub_4757D0_drawable(nox_drawable* dr);

#endif // NOX_PORT_GAME2_1
#ifndef NOX_PORT_GAME2
#define NOX_PORT_GAME2

#include "defs.h"

char* nox_get_thing_name(int i);
nox_thing* nox_get_thing(int i);
wchar2_t* nox_get_thing_pretty_name(int i);
wchar2_t* nox_get_thing_desc(int i);
int nox_get_thing_pretty_image(int i);
int nox_xxx_getTTByNameSpriteMB_44CFC0(char* a1);
int sub_44D040(int i);
int sub_44D060(int a1);
int sub_44D090(int a1);
int nox_drawable_link_thing(nox_drawable* a1, int i);
nox_thing* sub_44D330(char* a1);
void sub_44D3A0();
void sub_44D5C0(int a1, int a2);
void sub_44D640();
int sub_44D660(char* a1);
int sub_44D7E0(int a1);
void sub_44D8F0();
int nox_xxx_playDialogFile_44D900(unsigned char* a1, int a2);
int sub_44D930();
void sub_44D960();
int sub_44D970();
int sub_44D990();
void nox_video_stopAllFades_44E040();
int nox_video_inFadeTransition_44E0D0();
uint32_t* sub_44E110();
void sub_44E320();
int nox_client_getIntroScreenDuration_44E3B0();
int nox_xxx_playGMCAPsmth_44E3E0();
uint32_t* sub_44E560();
int nox_client_wndQuestBriefProc_44E630(int a1, int a2, int a3, int a4);
int nox_xxx_wndProc_44E6E0(int a1, int a2, int a3, int a4);
int sub_44E6F0(uint32_t* a1, int xLeft);
double sub_44E8B0();
int sub_44E8D0();
int nox_client_lockScreenBriefing_450160(int a1, int a2, char a3);
void sub_450580();
int sub_4505E0();
unsigned char sub_450750();
char sub_450760(char a1);
int sub_450960(const void* a1, const void* a2);
char* sub_450AD0(char* a1);
int sub_450AF0(int a1);
void nox_gui_setQuestStage_450B00(int a1);
int nox_gui_getQuestStage_450B10();
int sub_451920(uint32_t* a2);
void sub_451970();
int sub_451BE0(int a1);
int sub_451CA0(uint32_t* a1);
int sub_451F30(int a1, int a2);
int sub_451F90(int a1);
int sub_451FE0(int a1);
int sub_452010();
void sub_452050(uint32_t* a1);
int* sub_452120(int a1);
void sub_452190(int a1);
int* sub_4521A0(int a1);
int sub_4521F0();
int***** sub_452230();
char* nox_xxx_draw_452270(int a1);
int sub_4522A0(int a1);
uint32_t* nox_xxx_draw_452300(uint32_t* a1);
int sub_4523D0(void* a1);
int sub_452410(int a1);
int sub_452490(uint32_t* a1);
void sub_452510(int a3);
long long sub_452690(int a3, long long a4, int a5);
int sub_4526D0(int a1);
int sub_4526F0(int a1);
int* sub_452810(int a1, char a2);
int nox_thing_read_AVNT_452890(nox_memfile* a1, void* a2);
int nox_thing_skip_AVNT_452B00(nox_memfile* f);
int nox_thing_skip_AVNT_inner_452B30(nox_memfile* f);
int sub_452BD0(int a1, char* a2);
void nox_xxx_clientPlaySoundSpecial_452D80(int a1, int a2);
void sub_452DC0(int a1, int a2, int a3);
void sub_452E10(int a1, int a2, int a3);
int sub_452E90(uint32_t* a1, int a2);
int sub_452EB0(int* a1);
int sub_452EE0(int a1, int a2);
unsigned int sub_452F10(int a1, int a2);
int sub_452F50(int a1, int a2);
uint32_t* sub_452F80(int a1, int a2);
int sub_452FA0(int a1);
int sub_452FE0(int a1, int a2);
void sub_453050();
void nox_xxx____setargv_9_453060();
int sub_453070();
int sub_453080(char a1);
uint32_t* sub_4532E0();
int sub_453350(int a1, int a2);
int sub_4533D0(int a1, int a2, int a3, int a4);
int* sub_4535E0(int* a1);
int sub_4535F0(int a1);
char* sub_453600();
int sub_453610();
uint8_t* sub_453620(uint8_t* a1, char a2, int a3);
uint32_t* sub_453640(uint32_t* a1, int a2, int a3);
int sub_453660(int a1);
int sub_453690(int a1);
int sub_4536B0(uint32_t* a1);
int sub_453710();
char sub_453750();
uint32_t* sub_453B00();
int sub_453B80(int a1, int a2);
void sub_453F70(const void* a1);
char* sub_453F90();
int sub_453FA0(int a1, int a2, int a3);
int sub_454000(int a1, int a2);
int sub_454040(uint32_t* a1);
int sub_4540E0(int a1);
char sub_454120();
int nox_xxx_guiServerAccessLoad_4541D0(int a1);
int sub_454A90(int a1, int a2);
int nox_xxx_windowAccessProc_454BA0(int a1, int a2, int* a3, int a4);
int sub_455770();
int sub_4557D0(int a1);
int* sub_455800();
int sub_455920(wchar2_t* a1);
void sub_455950(wchar2_t* a1);
int sub_4559B0(wchar2_t* a1);
int sub_455A00(int a1);
char sub_455A50(char a1);
int sub_455C10();
int sub_455CD0(uint8_t* a1, uint32_t* a2);
int sub_455E70(unsigned char a1);
int sub_455EE0();
int sub_455F10(int a1);
int sub_455F60();
int sub_456050();
int sub_456070();
int sub_4560D0(int a1, int a2);
int sub_456240();
int sub_456500();
int sub_456640(int a1, int a2);
void sub_456BB0(int a1);
wchar2_t* sub_456D00(int a1, wchar2_t* a2);
int* sub_456D60(int a1);
int sub_456E40(int a1, int a2);
int sub_456EA0(wchar2_t* a1);
int sub_456F10(wchar2_t* a1, int a2);
int sub_456FA0();
unsigned char sub_457120(int a1);
int sub_457140(int a1, wchar2_t* a2);
int sub_4571A0(int a1, int a2);
int sub_4573A0();
void sub_4573B0();
int sub_457460(int a1);
int nox_xxx_guiServerOptionsTryHide_4574D0();
int sub_457B60(int a1);
int sub_457F30(int a1);
int nox_xxx_windowServerOptionsDrawProc_458500(uint32_t* a1, int a2);
int nox_xxx_guiServerOptionsProc_458590(int a1, int a2, int a3, int a4);
char sub_459150();
int sub_4593B0(int a1);
int sub_459560(int a1);
int sub_459700();
int* nox_xxx_guiServerOptionsHide_4597E0(int a1);
char* sub_459870();
int sub_459A40(char* a1);
char* sub_459AA0(void* a1);
int sub_459C30();
int sub_459D50(int a1);
int sub_459D60();
int sub_459D80(int a1);
int sub_459DA0();
int sub_459DB0(nox_drawable* dr);
void sub_459DD0(nox_drawable* dr, unsigned char a2);
void nox_xxx_cliRemoveHealthbar_459E30(nox_drawable* dr, unsigned char a2);
nox_drawable* nox_xxx_cliFirstMinimapObj_459EB0();
int nox_xxx_cliNextMinimapObj_459EC0(int a1);
nox_drawable* nox_xxx_cliGetSpritePlayer_45A000();
nox_drawable* sub_45A010(nox_drawable* dr);
nox_drawable* sub_45A060();
nox_drawable* nox_drawable_next_45A070(nox_drawable* a1);
void nox_xxx_sprite_45A110_drawable(nox_drawable* a1);
nox_drawable* nox_xxx_spriteLoadAdd_45A360_drawable(int thingInd, int a2, int a3);
void nox_xxx_spriteDeleteStatic_45A4E0_drawable(nox_drawable* dr);
void sub_45A670(unsigned int a1);
nox_drawable* nox_xxx_netSpriteByCodeDynamic_45A6F0(int a1);
nox_drawable* nox_xxx_netSpriteByCodeStatic_45A720(int a1);
int nox_xxx_spriteSetActiveMB_45A990_drawable(int a1);
int nox_xxx_spriteSetFrameMB_45AB80(int a1, int a2);
int nox_xxx_guiSpellSortFn_45ABC0(const void* a1, const void* a2);
int nox_xxx_bookSetColor_45AC40();
void nox_client_toggleSpellbook_45AC70();
int nox_xxx_bookHideMB_45ACA0(int a1);
int nox_xxx_guiSpellSortList_45ADF0(int a1);
void nox_xxx_book_45B010(int a1);
int nox_xxx_bookWndProc_45B070(int a1, int a2);
int nox_xxx_bookClickSpell_45B1F0();
int nox_xxx_bookClickCreature_45B200();
int nox_xxx_book_45B210(int a1, int a2);
int nox_xxx_bookChildWndProcMB_45B360(uint32_t* a1, unsigned int a2);
int nox_xxx_bookListWndProc_45B5F0(int a1, unsigned int a2, unsigned int a3);
int nox_xxx_bookMoveToPage_45B930(int a1);
int nox_xxx_bookInit_45B9D0();
int nox_xxx_bookDrawIconFn_45CB30(uint32_t* a1);
int nox_xxx_bookWndFn_45CC10(uint32_t* a1, int a2, unsigned int a3);
int sub_45CFC0();
void nox_xxx_netSpellRewardCli_45CFE0(int a1, int a2, int a3, int a4);
void nox_xxx_netGuideRewardCli_45D140(int a1, int a2);
int* nox_xxx_bookSetForward_45D200(int* a1, int a2, int2* a3);
void nox_xxx_abilityReward_45D290(int a1, char* a2, int a3);
int sub_45D320(int a1);
int sub_45D400(int a1);
char* nox_xxx_clientQuestDisableAbility_45D4A0(int a1);
int sub_45D500(int a1);
uint32_t* sub_45D550(uint32_t* a1);
void nox_xxx_bookFillAll_45D570(int a1, int a2);
int sub_45D7D0(int* a1, int* a2);
void sub_45D810();
int sub_45D9B0();
int nox_xxx_guiSpellTargetClickSet_45D9D0(int a1);
int nox_xxx_guiSpell_45DA10(int a1);
void nox_client_invokeSpellSlot_45DA50(int a1);
void nox_xxx_clientStoreLastButton_45DAD0(int a1);
int nox_xxx_clientSendAbil_45DAF0(int a1);
int nox_xxx_clientSendSpell_45DB20(char* a1, int a2, char a3);
int sub_45DB90();
void nox_xxx_guiSpellTargetClickCheckSend_45DBB0();
void* nox_xxx_book_45DBE0(void* a1, int a2, int a3);
void nox_xxx_spellKeyPackSetSpell_45DC40(int a1, int a2, int a3);
int nox_xxx_bookSpellDrop_45DCA0(int a1, char a2, int a3, int a4, int* a5);
int nox_xxx_updateSpellIcons_45DDF0(int a1);
int nox_xxx_updateSpellIconDir_45DE10(int a1, int a2);
int nox_xxx_spellBoxPointToWnd_45DE60(int a1, int a2, int a3);
int nox_xxx_guiSpellSetCursor_45DF60(int a1, char a2);
int sub_45DFC0(int a1);
int nox_xxx_clientUpdateButtonRow_45E110(int a1);
int nox_xxx_buttonsGetSelectedRow_45E180();
int nox_xxx_quickbarButtonBookDraw_45EF30();
int sub_45EF40();
int nox_xxx_quickBarWnd_45EF50(int a1, int a2, unsigned int a3);
void nox_xxx_clientSwapQuickbarKeys_45F300(int a1, int a2, int a3);
void sub_45F390(int a1, int a2, int a3, int a4);
int nox_xxx_quickbarButtonBookWnd_45F450(int a1, unsigned int a2);
int sub_45F500(int a1, int a2);
int sub_45F520(int a1, unsigned int a2);
int sub_45F5D0(uint32_t* a1);
int nox_xxx_quickbarTrapUpDownProc_45F630(int a1, unsigned int a2);
int nox_xxx_quickbarTrapUpDownDraw_45F6F0(uint32_t* a1);
int nox_xxx_quickbarTrapButtonProc_45F7A0(uint32_t* a1, unsigned int a2, unsigned int a3);
int sub_45F890();
int nox_xxx_quickbar_45F8D0(int a1, int a2, int a3, int a4);
int sub_45F8F0();
void sub_45F900();
int nox_xxx_quickbarTrapProc_45FB90(int a1, unsigned int a2, int a3, int a4);
int nox_xxx_quickbarDrawFn_460000();
int nox_xxx_quickBarInitWindow_4601F0(int a1, int a2, int a3, int a4, int a5, int a6, int a7);
void* sub_4602F0();
void* sub_460380();
void nox_client_trapSetNext_4603A0();
void nox_client_trapSetPrev_4603F0();
int nox_client_trapSetSelect_4604B0(int a1);
int sub_4604E0();
int nox_client_spellSetNext_4604F0();
int nox_client_spellSetPrev_460540();
void nox_client_spellSetSelect_460590();
void sub_460630();
int nox_xxx_guiSpell_460650();
int sub_460660();
int nox_xxx_quickBarClose_4606B0();
void sub_460920();
int sub_460940(void* this);
int sub_460A10(int a1, int a2, int a3, char a4);
int sub_460B90(int a1);

void nox_video_fadeInScreen_44DAB0(int a1, int a2, void* a3);
void nox_video_fadeOutScreen_44DB30(int a1, int a2, void* a3);

#endif // NOX_PORT_GAME2
#ifndef NOX_PORT_GAME1_3
#define NOX_PORT_GAME1_3

#include "defs.h"

void nox_client_xxx_switchChatMap_43B510();
int sub_43B6D0();
unsigned short* sub_43BC10(wchar2_t* a1, unsigned char a2);
int nox_sprintAddrPort_43BC80(const char* addr, unsigned short port, char* dst);
int sub_43BDB0();
void nox_game_decStateInd_43BDC0();
void nox_game_addStateCode_43BDD0(int a1);
int nox_game_getStateCode_43BE10();
int sub_43BE30();
void sub_43BE40(int a1);
int sub_43BE50_get_video_mode_id();
wchar2_t* get_video_mode_string(int v1);
void nox_xxx_gameGetScreenBoundaries_43BEB0_get_video_mode(int* w, int* h, int* d);
int nox_game_switchStates_43C0A0();
void nox_gui_freeAnimation_43C570(nox_gui_animation* p);
nox_gui_animation* nox_gui_makeAnimation_43C5B0(nox_window* win, int x1, int y1, int x2, int y2, int in_dx, int in_dy,
												int out_dx, int out_dy);
int sub_43C650();
int sub_43C6E0();
int nox_client_isConnected_43C700();
void sub_43CEB0();
void sub_43CF40();
void sub_43CF70();
void sub_43D6A0();
void sub_43D9B0(int a1, int a2);
void sub_43D9E0(void* a1);
int sub_43DA80();
void sub_43DAD0();
int sub_43DB20();
int sub_43DB30(int a1);
char* sub_43DB40(int a1);
int sub_43DB60();
void sub_43DBA0();
void sub_43DBE0();
void sub_43DC00();
int sub_43DC10();
int sub_43DC30();
void sub_43DD10(void* a1);
void sub_43DD70(int a1, int a2);
void nox_game_SetCliDrawFunc(void* a1);
int sub_43DE40(void* a1);
void nox_game_exit_xxx2();
uint32_t* nox_xxx_gui_43E1A0(int a1);
int sub_43E8C0(int a1);
void sub_43E8E0(int a1);
void sub_43E910(int a1);
int sub_43E940(void* a1);
void sub_43E9F0();
int sub_43EA20(void* a1);
int sub_43EC10();
int sub_43EC30(void* a1);
int sub_43ECB0(void* a1);
int sub_43ED00(uint32_t* a1);
int sub_43EE00(void* a1);
int sub_43EFD0(void* a1);
int sub_43F010(void* a1);
int sub_43F030(int a1);
int sub_43F050();
int sub_43F060(uint32_t* a1);
int sub_43F0D0();
int sub_43F0E0(uint32_t* a1);
int sub_43F130();
int nox_xxx_guiFontHeightMB_43F320(void* a1);
void* nox_xxx_guiFontPtrByName_43F360(char* a1);
void nox_draw_enableTextSmoothing_43F670(int a1);
int nox_xxx_drawString_43F6E0(void* a1, wchar2_t* a2, int a3, int a4);
int nox_draw_drawStringHL_43F730(void* a1, wchar2_t* a2, int a3, int a4);
int nox_xxx_drawStringStyle_43F7B0(void* a1, wchar2_t* a2, int a3, int a4);
int nox_xxx_drawGetStringSize_43F840(void* a1, wchar2_t* a2, int* a3, int* a4, int a5);
int nox_xxx_bookGetStringSize_43FA80(void* a1, wchar2_t* a2, int* a3, int* a4, int a5);
int nox_xxx_drawStringWrap_43FAF0(void* a1, wchar2_t* str, int a3, int a4, int a5, int a6);
int nox_xxx_drawStringWrapHL_43FD00(void* a1, wchar2_t* a2, int a3, int a4, int a5, int a6);
int nox_xxx_bookDrawString_43FA80_43FD80(void* a1, wchar2_t* a2, int a3, int a4, int a5, int a6);
int nox_draw_setTabWidth_43FE20(int a1);
void nox_client_clearScreen_440900();
void nox_xxx_netServerCmd_440950_empty();
void sub_4417E0(wchar2_t* a1, const char* a2);
wchar2_t* sub_445450();
int nox_xxx_drawMessageLines_445530();
int nox_xxx_guiChatMode_4456E0(int* a1);
int nox_xxx_guiChatShowHide_445730(int a1);
int sub_445770();
void nox_xxx_quitDialogYes_445B20();
int nox_xxx_quitDialogNo_445B30();
void sub_445BA0();
void sub_445C20();
uint32_t* sub_445FF0();
void nox_client_quit_4460C0();
int nox_xxx_serverIsClosing_446180();
unsigned int nox_gui_xxx_check_446360();
void sub_446380();
int nox_motd_4463E0(int a1);
void* sub_446490(int a1);
int nox_xxx_guiMotdLoad_4465C0();
int sub_4466C0(int a1, int a2, int a3, int a4);
char* sub_4466F0(char* a1, uint8_t* a2);
uint8_t* nox_xxx_motdAddSomeTextMB_446730(uint8_t* a1);
int sub_446780();
void nox_xxx_motd_4467F0();
int sub_446950();
int sub_449E00(wchar2_t* a1);
int sub_449E30(wchar2_t* a1);
int sub_449E60(char a1);
void sub_449EA0(int a1);
void sub_44A360(int a1);
void sub_44A400();
int sub_44A4A0();
void sub_44A4B0();
int sub_44A4E0();
void nox_xxx____setargv_4_44B000();

void* nox_xxx_dialogMsgBoxCreate_449A10(nox_window* win, wchar2_t* a2, wchar2_t* text, int a4, void* a5, void* a6);

#endif // NOX_PORT_GAME1_3
#ifndef NOX_PORT_GAME1_2
#define NOX_PORT_GAME1_2

#include "defs.h"

int nox_xxx_wallMath_427F30(int2* a1, int* a2);
int sub_428170(void* a1, int4* a2);
int nox_xxx_pointInRect_4281F0(int2* a1, int4* a2);
int sub_428220(float2* a1, float4* a2);
void nox_shape_box_calc(nox_shape* s);
char* sub_4282D0(char* a1, int a2);
void* sub_4282F0(int a1, int a2, size_t a3);
unsigned int sub_428540(int a1, char* a2, int a3);
char* sub_4285C0(short* a1);
int sub_428810(int a1, int a2);
int sub_428890(short* a1);
void* sub_4289D0(void** a1);
int nox_server_mapRWObjectTOC_428B30();
int nox_server_mapRWPolygons_428CD0(int a1);
int nox_server_mapRWAmbientData_429200();
int nox_server_mapRWWindowWalls_4292C0(uint32_t* a1);
void sub_429450(uint8_t* a1, uint32_t* a2);
void sub_4294B0(uint8_t* a1, uint32_t* a2);
void nox_xxx_wallBreakableCounterClear_429520();
int nox_server_mapRWDestructableWalls_429530(uint32_t* a1);
void nox_xxx_wall_4296E0(uint8_t* a1, uint32_t* a2);
void sub_429740(uint8_t* a1, uint32_t* a2);
void nox_xxx_wallSecretCounterClear_4297B0();
int nox_server_mapRWSecretWalls_4297C0(uint32_t* a1);
void sub_429A00(uint8_t* a1, uint32_t* a2);
void sub_429A60(int a1, uint32_t* a2);
int nox_server_mapRWWallMap_429B20(uint32_t* a1);
int sub_42A0F0(int a1);
int sub_42A150(short a1, uint32_t* a2);
int sub_42A650(unsigned char* a1);
unsigned char nox_xxx_wall_42A6C0(unsigned char a1, unsigned char a2);
int nox_server_mapRWMapInfo_42A6E0();
uint16_t* sub_42A8B0(uint8_t* a1, int* a2);
int sub_42A970(uint8_t* a1, uint8_t* a2, int* a3);
double sub_42AAA0(int* a1);
void sub_42ABF0(int a1, int a2, int a3);
uint8_t* sub_42AC50(uint8_t* a1, size_t* a2);
uint16_t* sub_42ADA0(int a1, int a2, short a3, unsigned int* a4);
uint16_t* sub_42B810(short* a1, unsigned int* a2);
int sub_42BCE0(uint32_t* this, char* a2, char a3);
int sub_42BD50(uint32_t* this, char* a2, char a3);
int sub_42BDC0(uint32_t* this, char* a2, char a3);
int sub_42BE30(uint32_t* this, char* a2, const char* a3);
int sub_42BEA0(uint32_t* this, char* a2, const void* a3, unsigned short a4);
void sub_42BFB0();
void sub_42BFE0();
int nox_xxx_objectTOCgetTT_42C2B0(unsigned short a1);
unsigned short sub_42C2E0(int a1);
unsigned short sub_42C300();
void sub_42C310(int a1, unsigned short a2);
void sub_42C330(uint32_t* this);
int sub_42C360(uint32_t* this, int a2);
uint16_t* sub_42C480(uint32_t* this, unsigned int* a2);
int sub_42C770(void** this);
int sub_42C7F0(int this, char* a2, char a3);
int sub_42C820(int this, char* a2, char a3);
int sub_42C8B0(int this, char* a2, char a3);
int sub_42C8E0(int this, char* a2, const char* a3);
int sub_42C910(int this, char* a2, const void* a3, unsigned short a4);
char* sub_42C9A0(void** this, char* a2, char a3);
char* sub_42CA00(void** this, char* a2, char a3);
char* sub_42CB20(void** this, char* a2, char a3);
char* sub_42CB80(void** this, char* a2, const char* a3);
void* sub_42CBF0(void** this, char* a2, const void* a3, unsigned short a4);
uint16_t sub_42CC70(int this);
short sub_42CCE0(uint16_t* this);
void nox_xxx_clientTalk_42E7B0(nox_drawable* a1p);
void nox_xxx_clientCollideOrUse_42E810(nox_drawable* a1p);
void nox_xxx_clientTrade_42E850(nox_drawable* a1p);
int sub_42EB90(int a1);
int sub_42EBA0();
void sub_42EDC0();
nox_video_bag_image_t* nox_xxx_readImgMB_42FAA0(int known_idx, char a2, char* a3);
void* nox_video_getImagePixdata_42FB30(nox_video_bag_image_t* img);
nox_things_imageRef_t* nox_xxx_gLoadAnim_42FA20(char* a1);
nox_video_bag_image_t* nox_xxx_gLoadImg_42F970(char* name);
int sub_430AA0(int a1);
int nox_client_mousePriKey_430AF0();
int nox_xxx_cursor_430B00();
void nox_client_setMousePos_430B10(int x, int y);
int sub_430B50(int a1, int a2, int a3, int a4);
void sub_430C30_set_video_max(int w, int h);
void nox_xxx_screenGetSize_430C50_get_video_max(int* w, int* h);
void sub_431270();
void sub_431290();
int sub_431370();
void sub_431380();
void nox_client_resetScreenParticles_431510();
nox_screenParticle* nox_client_newScreenParticle_431540(int a1, int a2, int a3, int a4, int a5, int a6, char a7,
														char a8, char a9, char a10);
void nox_client_addScreenParticle_431680(nox_screenParticle* p);
void sub_4316C0(nox_screenParticle* p);
void sub_431700(uint64_t* a1);
void nox_client_screenParticlesDraw_431720(nox_draw_viewport_t* rdr);
char* nox_xxx_getHostInfoPtr_431770();
char* nox_xxx_copyServerIPAndPort_431790(char* a1);
void sub_434080(int a1);
void nox_xxx_drawSetTextColor_434390(int a1);
void nox_xxx_drawSetColor_4343E0(int a1);
void nox_client_drawSetColor_434460(int a1);
void nox_client_drawEnableAlpha_434560(int a1);
void nox_client_drawSetAlpha_434580(unsigned char a1);
void sub_4345F0(int a1);
void nox_xxx_draw_434600(int a1);
void sub_434990(int a1, int a2, int a3);
void sub_4349C0(uint32_t* a1);
void sub_435040();
void sub_435120(void* a1, void* a2);
void sub_435150(uint8_t* a1, char* a2);
void nox_draw_splitColor_435280(short a1, uint8_t* a2, uint8_t* a3, uint8_t* a4);
long long nox_xxx_initTime_435570();
void nox_xxx_cliUpdateCameraPos_435600(int a1, int a2);
void nox_xxx_getSomeCoods_435670(int2* a1);
uint32_t* sub_435690(uint32_t* a1);
int nox_xxx_gameGetPlayState_4356B0();
bool nox_client_drawable_testBuff_4356C0(nox_drawable* dr, char a2);
void nox_xxx_spriteLoadError_4356E0();
wchar2_t* sub_435700(wchar2_t* a1, int a2);
void nox_client_setServerConnectAddr_435720(char* addr);
int nox_xxx_cliToggleObsWindow_4357A0();
int sub_435F60();
int sub_436550();
void sub_437100();
nox_draw_viewport_t* nox_draw_getViewport_437250();
void sub_437260();
void sub_437290();
int nox_xxx_playerAnimCheck_4372B0();
int nox_xxx_clientIsObserver_4372E0();
int sub_437320(int a1);
void sub_4375C0(int a1);
int sub_437860(int a1, int a2);
void sub_4379C0();
int sub_438330();
int sub_438370();
int sub_438480();
int nox_client_joinGame_438A90();
int sub_438C80(int a1, int a2);
int sub_438DD0(unsigned int a1, unsigned int a2);
int sub_438E30(uint32_t* a1, int a2);
int sub_438EF0(uint32_t* a1, int a2, unsigned int a3, int a4);
int sub_439050(int a1, unsigned int a2, int* a3, unsigned int a4);
uint32_t* sub_439450(int a1, int a2, uint32_t* a3);
char* sub_439CC0(int a1, char* a2);
int sub_439D00(int* a1, int a2, unsigned int a3, int a4);
int sub_439D90(unsigned int a1, unsigned int a2);
int sub_43A920();
int nox_client_guiXxx_43A9D0();
char* sub_43AA70();
int sub_43AF30();
int sub_43AF40();
int sub_43AF80();
int sub_43AF90(int a1);
void nox_client_setConnError_43AFA0(int a1);
unsigned int nox_client_getServerAddr_43B300();
int nox_client_getServerPort_43B320();
int sub_43B340();
int nox_xxx_cliDrawConnectedLoop_43B360();
int sub_43B460();
int sub_43B490();
void nox_xxx_serverHost_43B4D0();

#endif // NOX_PORT_GAME1_2
#ifndef NOX_PORT_GAME1_1
#define NOX_PORT_GAME1_1

#include "common__savegame.h"
#include "defs.h"
#include "common__system__team.h"

void* sub_421430();
void sub_418800(wchar2_t* a1, wchar2_t* a2, int a3);
int sub_418830(int a1, int a2);
char* sub_4189D0();
char* sub_418A10();
char* sub_418A40(wchar2_t* a1);
char* sub_418A80(int a1);
int sub_418BC0(int a1);
int nox_xxx_teamCheckSmth_418C60(int a1);
uint32_t* sub_418C70(uint32_t* a1);
uint32_t* nox_xxx_objGetTeamByNetCode_418C80(int a1);
void nox_xxx_teamRenameMB_418CD0(wchar2_t* a1, wchar2_t* a2);
void sub_418D80(int a1);
uint32_t* sub_418E40(void* a1, void* a2);
void sub_418F20(nox_team_t* a1, int a2);
void nox_xxx_netChangeTeamID_419090(int a1, int a2);
int sub_4190F0(wchar2_t* a1);
int nox_xxx_servObjectHasTeam_419130(int a1);
int nox_xxx_servCompareTeams_419150(int a1, int a2);
int nox_xxx_teamCompare2_419180(void* a1, unsigned char a2);
void nox_xxx_netChangeTeamMb_419570(void* a1, int a2);
int sub_4196D0(void* a1, void* a2, int a3, int a4);
void sub_4197C0(wchar2_t* a1, int a2);
void sub_4198A0(int a1, int a2, int a3);
char sub_419900(int a1, int a2, short a3);
char sub_419960(int a1, int a2, short a3);
double sub_419A10(float a1);
unsigned int sub_419A30(float a1);
int nox_float2int(float a1);
short nox_float2int16(float a1);
short nox_float2int16_abs(float a1);
float nox_double2float(double a1);
int nox_double2int(double a1);
double nox_xxx_gamedataGetFloat_419D40(char* a1);
double nox_xxx_gamedataGetFloatTable_419D70(char* a1, int a2);
void sub_419E10(nox_object_t* a1, int a2);
int sub_419E60(nox_object_t* a1);
int sub_419EA0();
int sub_41A000(char* a1, nox_savegame_xxx* sv);
int nox_xxx_cliPlrInfoLoadFromFile_41A2E0(char* a1, int a2);
int nox_xxx_plrLoad_41A480(char* a1);
int sub_41A590(void* a1, void* a2);
int sub_41AA30(void* a1, void* a2);
int sub_41AC30(void* a1, void* a2);
int sub_41B3B0();
int sub_41B3E0(int a1);
int nox_xxx_guiFieldbook_41B420(void* a1, void* a2);
int nox_xxx_guiSpellbook_41B660(void* a1, void* a2);
int nox_xxx_guiEnchantment_41B9C0(void* a1, void* a2);
int sub_41BEC0(void* a1, void* a2);
int sub_41C080(void* a1, void* a2);
int sub_41C200(void* a1, int a2);
int sub_41C280(void* a1);
int nox_xxx_parseFileInfoData_41C3B0(int a1);
int sub_41C780(int a1);
int nox_xxx_netSavePlayer_41CE00();
int sub_41CEE0(void* a1, int a2);
int sub_41D1A0(int a1);
int sub_41D1B0();
int sub_41D650();
int sub_41D670(char* a1);
int sub_41D6C0();
int sub_41DA10(int a1);
int sub_41DA70(int a1, short a2);
int sub_41E2F0();
int sub_41E300(int a1);
int sub_41E370();
int nox_xxx_reconAttempt_41E390();
void nox_xxx_reconStart_41E400();
int sub_41E470();
int sub_41E4B0(int a1);
int sub_41EC30();
int sub_41F4B0();
uint32_t* sub_41F790(const char* a1);
int sub_41F800(const char* a1);
char* sub_41FA40();
void sub_41FA50(const char* a1);
int sub_41FBE0(uint32_t* a1, uint32_t* a2);
int nox_xxx_officialStringCmp_41FDE0();
int sub_4200E0();
int sub_420100();
int sub_420230(char* a1, uint16_t* a2);
int sub_420360(char* a1, uint16_t* a2);
int sub_4207E0();
uint32_t* sub_420C40(int a1, int a2);
uint32_t* sub_420C70();
char* nox_xxx_polygon_420CA0();
char* nox_xxx_polygon_420CD0(uint32_t* a1);
int sub_420D10();
unsigned int* nox_xxx_polygonSetAngle_420D40(int a1, int a2, unsigned int a3, int a4);
unsigned int* sub_420DA0(float a1, float a2);
int sub_420E80(float a1, float a2, float a3);
char* sub_421010();
char* nox_xxx_polygonGetAngle_421030(int a1);
void sub_421040(int a1);
char* nox_xxx_polygonGetNext_4210A0();
char* sub_4210E0(int a1);
int sub_421130();
int sub_421160(int a1);
int sub_4211D0(int a1);
unsigned char* sub_421230();
char* nox_xxx_polygonGetByIdx_4214A0(int a1);
void sub_4214D0();
int nox_xxx_polygon_421660(int* a1, int a2);
int nox_xxx_polygonGetIdxA_421790(int2* a1, int a2);
nox_player_polygon_check_data* nox_xxx_polygonIsPlayerInPolygon_4217B0(int2* a1, int a2);
int sub_421880(int a1, int a2, float a3);
int* sub_421990(int2* a1, float a2, int a3);
uint32_t* sub_421B10();
int sub_421B40(uint32_t* a1);
void nox_xxx_polygonDrawColor_421B80();
void nox_xxx_questCheckSecretArea_421C70(nox_object_t* a1);
unsigned char* sub_421F10(int* a1, int a2);
void nox_xxx_monsterPolygonEnter_421FF0(nox_object_t* a1);
int sub_422140(int a1);
int* nox_xxx_tileListAddNewSubtile_422160(int a1, int a2, int a3, int a4);
int nox_xxx_tileFreeTileOne_4221E0(void* a1);
int nox_xxx_tileFreeTile_422200(int a1);
int nox_server_mapRWFloorMap_422230(int a1);
unsigned char nox_xxx_tileReadOne_422A40(int a1, uint8_t* a2);
int nox_xxx_tile_422C10(int a1, int a2);
int set_one_bitmask_flag_by_name_4239C0(char* name, uint32_t* bitmask, const char** allowed_names);
int sub_4240F0(int a1, const char* a2, int a3);
int nox_xxx_parseSoundSetBin_424170(char* a1);
void* nox_xxx_monsterGetSoundSet_424300(nox_object_t* a1);
int nox_xxx_setNPCVoiceSet_424320(int a1, int a2);
const char** nox_xxx_getDefaultSoundSet_424350(const char* a1);
void* nox_xxx_updateSpellRelated_424830(void* a1, int a2);
int nox_xxx_enchantByName_424880(char* a1);
char* nox_xxx_getEnchantName_4248F0(int a1);
int nox_xxx_getEnchantSpell_424920(int a1);
char sub_424CB0(int a1);
int sub_424D00();
int sub_424D20(int a1);
int nox_xxx_abilityNameToN_424D80(const char* a1);
char* nox_xxx_abilityGetName_425250(int a1);
wchar2_t* nox_xxx_abilityGetName_0_425260(int a1);
int nox_xxx_abilityCooldown_4252D0(int a1);
wchar2_t* sub_4252F0(int a1);
nox_video_bag_image_t* nox_xxx_spellGetAbilityIcon_425310(int a1, int a2);
int nox_xxx_bookFirstKnownAbil_425330();
int nox_xxx_bookNextKnownAbil_425350(int a1);
int sub_425450(int a1);
int sub_4254A0(int a1, uint8_t* a2);
bool sub_4254C0(unsigned char** a1);
uint8_t* sub_425500(int a1, uint8_t* a2, char a3);
char sub_425520(int a1, char a2);
int sub_425550(uint8_t* a1, uint8_t* a2, int a3);
void nox_common_list_clear_425760(nox_list_item_t* list);
void* sub_425770(void* a1);
int sub_425790(int* a1, uint32_t* a2);
void sub_4257F0(int* a1, uint32_t* a2);
nox_list_item_t* nox_common_list_getFirstSafe_425890(nox_list_item_t* list);
nox_list_item_t* nox_common_list_getNextSafe_4258A0(nox_list_item_t* list);
uint32_t* sub_4258C0(uint32_t** a1, int a2);
void nox_common_list_append_4258E0(nox_list_item_t* list, nox_list_item_t* cur);
uint32_t* sub_425900(uint32_t* a1, uint32_t* a2);
void nox_common_list_remove_425920(void* a1);
nox_list_item_t* nox_common_list_getNext_425940(nox_list_item_t* list);
int sub_425960(int a1);
void sub_4259C0();
int* sub_4259F0();
int* sub_425A50();
int* sub_425A60(int* a1);
int* sub_425A70(int a1);
int sub_425AA0(int a1);
wchar2_t* sub_425AD0(int a1, wchar2_t* a2);
void sub_425B30(void* a1, int a2);
char* sub_425B60(void* lpMem, int a2);
int* sub_425BC0(int a1);
int* sub_425BE0(int* a1);
int nox_xxx_countObserverPlayers_425BF0();
char* sub_425CA0(int a1, int a2);
int sub_425E90(void* a1, char a2);
int sub_425ED0(int a1, char a2);
void sub_425F10(nox_playerInfo* pl);
void sub_426150();
char* nox_xxx_net_4263C0();
int sub_4264D0();
int nox_xxx_wallGet_426A30();
char* nox_xxx_mapGetWallSize_426A70();
void nox_xxx_mapWall_426A80(int* a1);
int nox_xxx_mapWriteSectionsMB_426E20(void* a1);
int nox_xxx_mapReadSection_426EA0(void* a1, char* name, uint32_t* a3);
int nox_xxx_guide_427010(const char* a1);
char* nox_xxx_guideNameByN_427230(int a1);
int nox_xxx_guiCreatureGetName_427240(int a1);
int nox_xxx_creatureIsCharmableByTT_4272B0(int a1);
int nox_xxx_guideGetDescById_4272E0(int a1);
int nox_xxx_bookGetFirstCreMB_427300();
int nox_xxx_bookGetNextCre_427320(int a1);
int nox_xxx_bookGetCreatureImg_427400(int a1);
int sub_427430(int a1);
unsigned char nox_xxx_guideGetUnitSize_427460(int a1);
nox_playerInfo_journal* nox_xxx_journalEntryAdd_427490(nox_playerInfo* a1, char* a2, short a3);
void nox_xxx_comJournalEntryAdd_427500(nox_object_t* a1, char* a2, short a3);
int nox_xxx_journalEntryRemove_427590(nox_playerInfo* a1p, const char* a2);
void nox_xxx_comJournalEntryRemove_427630(int a1, const char* a2);
int nox_xxx_comRemoveEntryAll_427680(const char* a1);
int nox_xxx_journalUpdateEntry_4276B0(nox_playerInfo* a1p, const char* a2, short a3);
int nox_xxx_comJournalEntryUpdate_427720(int a1, const char* a2, short a3);
int nox_xxx_comUpdateEntryAll_427770(const char* a1, short a2);
int sub_4277B0(nox_object_t* a1p, unsigned short a2);
int sub_427980(float4* a1, float4* a2);
int sub_427DF0(int a1, int* a2, float a3);

void set_bitmask_flags_from_plus_separated_names_423930(const char* input, uint32_t* bitmask,
														const char** allowed_names);

#endif // NOX_PORT_GAME1_1