// SUGSEG's own symbols, which only its splat config reads

// alternate entry points of the executable's __subsf3 (libmath): GCC calls
// them for float additions and divisions
__addsf3 = 0x80022CBC; // type:func
__divsf3 = 0x80022ECC; // type:func

// the battle state (manual: the pairing doesn't reach SUGSEG's bss)
SUG_CURRENT_SCRIPT = 0x801FC9D8;
SUG_ACTIVE_MODEL = 0x801FC9DA;
SUG_CAMERA_SPIN = 0x801FC9DC;
SUG_CAMERA_ORBIT_RANGE = 0x801FC9E0;
SUG_CAMERA_YAW_SPIN = 0x801FC9E4;
SUG_BATTLE_STATE = 0x801FC9EC;
SUG_BATTLE = 0x801FCBD0;
SUG_SKILL_SCRIPTS = 0x801FCBE0;
SUG_SCRIPT_STATES = 0x801FCBF0;
SUG_PREV_MODEL = 0x801FCBFC;
SUG_TARGET_HP = 0x801FCC00;

// main's effect_object, which jp links into SUGSEG (us-main: us has these
// names in the executable)
updateEffectLinearMotion = 0x801EAF2C; // type:func us-main
updateEffectArcMotion = 0x801EAFCC; // type:func us-main
updateEffectWaveXMotion = 0x801EB060; // type:func us-main
updateEffectWaveYMotion = 0x801EB0DC; // type:func us-main
updateEffectTiltedArcMotion = 0x801EB158; // type:func us-main
updateEffectTiltedAccelArcMotion = 0x801EB23C; // type:func us-main
updateEffectShakeMotion = 0x801EB388; // type:func us-main
getEffectTrailEntry = 0x801EB4DC; // type:func version-only (jp's effect mode 10)
getVectorDistance = 0x801EB6A8; // type:func us-main
isPointAlongSegment = 0x801EB72C; // type:func us-main
projectPointOntoLine = 0x801EB86C; // type:func us-main
isWithinDistance = 0x801EBA34; // type:func us-main
checkEffectHitTarget = 0x801EBA78; // type:func us-main
cloneEffectObject = 0x801EBB28; // type:func us-main
updateEffectObject = 0x801EBB98; // type:func us-main
freeEffectObject = 0x801EBBD0; // type:func us-main
getDirectionVector = 0x801EBBF0; // type:func us-main
restartEffectMotion = 0x801EBCD4; // type:func us-main
initEffectObject = 0x801EBE4C; // type:func us-main
tickEffectMotion = 0x801EBFA4; // type:func us-main
updateEffectBrightness = 0x801EC7C0; // type:func us-main

// main's effect_prims, which jp also links into SUGSEG: the rings, and
// apart from them the streak particles (us-main)
buildRingEffectMesh = 0x801EC990; // type:func us-main
createRingEffect = 0x801ED068; // type:func us-main
renderRingEffect = 0x801ED400; // type:func us-main
freeRingEffect = 0x801EDB78; // type:func us-main
createStreakParticles = 0x801F5A84; // type:func us-main
renderStreakParticles = 0x801F61F4; // type:func us-main
freeStreakParticles = 0x801F66DC; // type:func us-main

// names from us (tools/match_versions.py --seed): the same function or datum
SUG_createPosHistory = 0x801EA8FC; // type:func
SUG_fillPosHistory = 0x801EA9E8; // type:func
SUG_pushPosHistory = 0x801EAA70; // type:func
SUG_getPosHistory = 0x801EAB2C; // type:func
SUG_freePosHistory = 0x801EAC44; // type:func
SUG_createValueHistory = 0x801EAC8C; // type:func
SUG_fillValueHistory = 0x801EAD3C; // type:func
SUG_pushValueHistory = 0x801EAD8C; // type:func
SUG_getValueHistory = 0x801EAE20; // type:func
SUG_freeValueHistory = 0x801EAEE4; // type:func
SUG_createSphereEffect = 0x801EDC04; // type:func
SUG_setSphereColor = 0x801EEACC; // type:func
SUG_tickSphereEffect = 0x801EEAF4; // type:func
SUG_drawSphereLines = 0x801EED8C; // type:func
SUG_drawSphereF = 0x801EF338; // type:func
SUG_drawSphereG = 0x801EFC64; // type:func
SUG_drawSphereGT = 0x801F065C; // type:func
SUG_updateSphereUvs = 0x801F1074; // type:func
SUG_freeSphereEffect = 0x801F1460; // type:func
SUG_fillGradientColors = 0x801F15C8; // type:func
SUG_blendCornerColors = 0x801F266C; // type:func
SUG_uploadShadedClut = 0x801F2A54; // type:func
SUG_createModelEffect = 0x801F2C78; // type:func
SUG_tickModelEffect = 0x801F2FAC; // type:func
SUG_freeModelEffect = 0x801F3080; // type:func
SUG_createSpriteEffect = 0x801F30D0; // type:func
SUG_tickSpriteEffect = 0x801F31C0; // type:func
SUG_freeSpriteEffect = 0x801F3260; // type:func
SUG_createTrailEffect = 0x801F3280; // type:func
SUG_tickTrailEffect = 0x801F3588; // type:func
SUG_freeTrailEffect = 0x801F3D38; // type:func
SUG_setTrailColors = 0x801F3DDC; // type:func
SUG_initTrailPrims = 0x801F3E38; // type:func
SUG_shadeTrailPrims = 0x801F410C; // type:func
SUG_createFadeRect = 0x801F4638; // type:func
SUG_tickFadeRect = 0x801F4740; // type:func
SUG_createScrollTexture = 0x801F48F4; // type:func
SUG_scrollTexture = 0x801F4A50; // type:func
SUG_freeScrollTexture = 0x801F4F3C; // type:func
SUG_initTamCache = 0x801F4F84; // type:func
SUG_loadTamFile = 0x801F4FBC; // type:func
SUG_startTexAnim = 0x801F50AC; // type:func
SUG_tickTexAnim = 0x801F53F8; // type:func
SUG_freeTamCache = 0x801F5610; // type:func
SUG_freeTexAnim = 0x801F5690; // type:func
SUG_scrollTexAnimLeft = 0x801F56C0; // type:func
SUG_scrollTexAnimRight = 0x801F577C; // type:func
SUG_scrollTexAnimUp = 0x801F583C; // type:func
SUG_scrollTexAnimDown = 0x801F5960; // type:func
SUG_createLightMotion = 0x801F6710; // type:func
SUG_tickLightMotion = 0x801F6968; // type:func
SUG_freeLightMotion = 0x801F6BB8; // type:func
SUG_uploadEffectTim = 0x801F6C78; // type:func
SUG_uploadTimFile = 0x801F6D70; // type:func
SUG_loadEffectPak = 0x801F6E08; // type:func
SUG_initEffectRoot = 0x801F6E5C; // type:func
SUG_initEffectSlots = 0x801F6F5C; // type:func
SUG_tickEffectScript = 0x801F7004; // type:func
SUG_freeEffectSlots = 0x801F714C; // type:func
SUG_runEffectScript = 0x801F7178; // type:func
SUG_getEffectParams = 0x801F79D0; // type:func
SUG_setEffectParams = 0x801F7BDC; // type:func
SUG_getEffectWorldPos = 0x801F7D74; // type:func
SUG_initEffectFromParams = 0x801F7DC0; // type:func
SUG_createFadeRectFromParams = 0x801F7E84; // type:func
SUG_createScrollTextureFromParams = 0x801F7F40; // type:func
SUG_createSphereFromParams = 0x801F7FB0; // type:func
SUG_createTrailFromParams = 0x801F8178; // type:func
SUG_createRingFromParams = 0x801F8380; // type:func
SUG_createEffectObjectFromParams = 0x801F85B4; // type:func
SUG_createModelEffectFromParams = 0x801F85E8; // type:func
SUG_createSpriteEffectFromParams = 0x801F868C; // type:func
SUG_createStreaksFromParams = 0x801F8704; // type:func
SUG_createLightMotionFromParams = 0x801F882C; // type:func
SUG_freeFadeRect = 0x801F890C; // type:func
SUG_createEffectEntry = 0x801F892C; // type:func
SUG_freeEffectEntries = 0x801F89C4; // type:func
SUG_createEffectScript = 0x801F8AA0; // type:func
SUG_freeEffectScript = 0x801F8BD0; // type:func
SUG_pauseEffectScript = 0x801F8C34; // type:func
SUG_runEffectScriptTask = 0x801F8CB0; // type:func
SUG_findSpriteEntry = 0x801F8D94; // type:func
SUG_initSpriteCache = 0x801F8E04; // type:func
SUG_initSpritePolys = 0x801F8E70; // type:func
SUG_setSpriteFrameVerts = 0x801F8FE4; // type:func
SUG_initSprite = 0x801F90A8; // type:func
SUG_drawSprite = 0x801F9170; // type:func
SUG_loadSprite = 0x801F9508; // type:func
SUG_loadSpriteFile = 0x801F979C; // type:func
SUG_freeSprites = 0x801F97BC; // type:func
SUG_hideSprite = 0x801F97DC; // type:func
SUG_resetCameraPos = 0x801F97E8; // type:func
SUG_orbitCamera = 0x801F9808; // type:func
SUG_fillShorts = 0x801F9930; // type:func
SUG_drawHudSpriteTrail = 0x801F995C; // type:func
SUG_initHudSlide = 0x801F9AEC; // type:func
SUG_tickHudSlides = 0x801F9B80; // type:func
SUG_drawNumber = 0x801F9DEC; // type:func
SUG_runDamagePopupTask = 0x801FA038; // type:func
SUG_animateHpCounter = 0x801FA1F0; // type:func
SUG_showAttackLabel = 0x801FA570; // type:func
SUG_showAttackBanner = 0x801FA800; // type:func
SUG_showHpBanner = 0x801FAF40; // type:func
SUG_showWinnerBanner = 0x801FB238; // type:func
SUG_showEatUpHpBanner = 0x801FB3FC; // type:func
SUG_placeBattleModels = 0x801FB4E4; // type:func
SUG_initBattleScene = 0x801FB5FC; // type:func
SUG_showWireGrid = 0x801FB658; // type:func
SUG_freeBattleScene = 0x801FB6AC; // type:func
SUG_runCameraOrbit = 0x801FB750; // type:func
SUG_playAttackTurn = 0x801FB7F8; // type:func
SUG_playBattleExchange = 0x801FBC08; // type:func
SUG_playSoloAnimation = 0x801FC2CC; // type:func manual (the pairing missed it)
SUG_applyEatUpHp = 0x801FC324; // type:func
SUG_playNoDamageTurn = 0x801FC504; // type:func
SUG_runPolygonBattle = 0x801FC578; // type:func
SUG_HUD_TPAGE = 0x801FC9E8;
// end of the names from us

// names from the C of the modules this version builds (tools/version_symbols.py)
SUG_MODEL_CLUT_RECT = 0x801EA7E8;
SUG_TAM_CACHE = 0x801FCA40;
SUG_FMT_SPRITE_PATH = 0x801EA8E4;
SUG_SPRITE_CACHE = 0x801FCBC8;
SUG_EFFECT_ROOT = 0x801FCA80; // size:0x140
SUG_DEFAULT_LIGHT_MATRIX = 0x801FC8C0;
SUG_DEFAULT_LIGHT_COLORS = 0x801FC8E0;
SUG_EFFECT_TICK_FUNCS = 0x801FC900;
SUG_EFFECT_CREATE_FUNCS = 0x801FC948;
SUG_EFFECT_FREE_FUNCS = 0x801FC990;
