/**
 * Complete renaming map for all FUN_XXXXXXXX functions in orbital_clean.c
 * Generated for bit Generations: Orbital decompilation project
 *
 * This file maps all generic function names (FUN_XXXXXXXX) to their
 * meaningful names based on code analysis, comment headers, and
 * address-to-name mappings from the decompiled code.
 *
 * Usage: #include this header before the .c file, or apply as sed replacements.
 *
 * Total: 266 unique FUN_ names mapped
 * Categories:
 *   - Core/Engine (0x08000xxx): Game state, objects, physics, rendering
 *   - UI/Menus (0x08007xxx-0x08008xxx): Menu system, level select
 *   - Particles (0x0800fxxx): Emitter system
 *   - Audio (0x08010xxx): Sound/music engine
 *   - Text (0x08011xxx): Text rendering
 *   - Image (0x08012xxx-0x08013xxx): Image drawing and effects
 *   - BG (0x08014xxx): Background layers
 *   - Math (0x080154xx): Math library
 *   - Memory (0x080155xx-0x08015exx): Memory management
 *   - Collision (0x08016xxx-0x08017xxx): Collision detection
 *   - Physics (0x08019xxx): Physics engine
 *   - Float (0x0801axxx-0x0801exxx): Floating point library
 *   - Bignum (0x0801cxxx-0x0801dxxx): Big number arithmetic
 *   - Printf (0x0801bxxx): String formatting
 *   - List (0x0801fxxx): Linked list operations
 */

#ifndef RENAME_MAP_H
#define RENAME_MAP_H

/* ============================================================
 * CORE GAME ENGINE (0x08000xxx)
 * ============================================================ */

#define FUN_080001cc GameState_Init
#define FUN_08000210 ObjectArray_ClearWithFree
#define FUN_08000250 Object_UpdateScreenPosition
#define FUN_08000440 SetObjectSize
#define FUN_08000448 Object_SetPositionWrapped
#define FUN_08000688 Object_BounceOffWalls
#define FUN_08000abc LoadLevelData
#define FUN_08000acc UpdateSubPositions
#define FUN_08000ae4 InitSubPositions
#define FUN_08000e78 Boundary_Init
#define FUN_08000f68 Collectible_Animate
#define FUN_08000f9c Collectible_Init
#define FUN_08001080 Physics_ApplyGravity

/* ============================================================
 * PHYSICS / COLLISION (0x08001xxx-0x08002xxx)
 * ============================================================ */

#define FUN_08001ddc Physics_DistanceSquared
#define FUN_08001ed8 Physics_CalcDistanceClamped
#define FUN_08001fd0 Collision_CheckCollision

/* ============================================================
 * RENDERING (0x08002xxx)
 * ============================================================ */

#define FUN_080020e8 Render_LoadSpriteSheet
#define FUN_0800216c Render_DrawSpriteAt
#define FUN_0800218c Render_DrawSpriteScaled
#define FUN_080022b4 Render_DrawFrame
#define FUN_080023a0 Render_UpdateAll
#define FUN_08002558 Render_DrawBox
#define FUN_0800263c Render_DrawText
#define FUN_080027ec Render_ParseAnimation
#define FUN_08002abc Render_DrawProgressBar
#define FUN_08002d20 Render_DrawTimerDisplay
#define FUN_08002ff0 Render_DrawScoreDisplay

/* ============================================================
 * LEVEL SYSTEM (0x08003xxx)
 * ============================================================ */

#define FUN_0800380c Level_LoadFromROM
#define FUN_080039d4 Level_SpawnObjects
#define FUN_08003ac4 Level_CreateWalls
#define FUN_08003bec Level_InitGravitySources
#define FUN_08003c38 Level_ParseObjectData
#define FUN_08003ce0 Level_PlaceObject
#define FUN_08003e04 Level_SetupComplete

/* ============================================================
 * OBJECT / PLAYER SYSTEM (0x08004xxx-0x08005xxx)
 * ============================================================ */

#define FUN_08004574 Object_GetAnimFrame
#define FUN_080050c8 Player_InitState
#define FUN_0800513c Player_FreeState
#define FUN_0800515c Player_SetMode
#define FUN_08005214 Player_UpdateIdle
#define FUN_0800528c Player_UpdateAiming
#define FUN_080052cc Player_UpdateLaunch
#define FUN_08005314 Player_UpdateFlight
#define FUN_0800535c Player_UpdateLanding
#define FUN_080055b8 Player_CheckInputState

/* ============================================================
 * MENU / GAME LOOP (0x08005xxx-0x08008xxx)
 * ============================================================ */

#define FUN_08005eb8 Menu_GetMinSelection
#define FUN_08005ebc Menu_GetMaxSelection
#define FUN_080071f8 GameLoop_AllocState
#define FUN_08007290 GameState_Setup
#define FUN_08007330 Menu_Init
#define FUN_080077d8 Menu_ProcessInput
#define FUN_08007808 Menu_UpdateSelection
#define FUN_080078e0 Menu_HandleConfirm
#define FUN_08007be4 Menu_DrawItems
#define FUN_08007dc4 Menu_Update
#define FUN_08007e5c Menu_Draw
#define FUN_08007f68 Menu_AnimateTransition
#define FUN_0800807c Menu_HandleBack
#define FUN_08008184 Menu_HandleStart
#define FUN_080083d8 Menu_HandleOptions
#define FUN_080085bc Menu_HandleCredits
#define FUN_0800879c LevelSelect_CheckUnlock

/* ============================================================
 * LEVEL SELECT (0x08008xxx-0x08009xxx)
 * ============================================================ */

#define FUN_080088c8 LevelSelect_HandleInput
#define FUN_08008b68 LevelSelect_UpdateTimer
#define FUN_08008d6c LevelSelect_DrawLevel
#define FUN_08008f04 LevelSelect_DrawStars
#define FUN_08009228 Score_UpdateDisplay
#define FUN_080094b4 Score_CheckHighScore
#define FUN_0800950c Title_HandleInput
#define FUN_080097d0 Title_AnimateLogo
#define FUN_08009c3c Title_UpdateBackground

/* ============================================================
 * SAVE SYSTEM (0x0800axxx)
 * ============================================================ */

#define FUN_0800a078 Save_Load

/* ============================================================
 * INPUT SYSTEM (0x0800exxx)
 * ============================================================ */

#define FUN_0800e748 Input_InitSystem
#define FUN_0800e804 Input_GetDirection
#define FUN_0800e81c Input_GetAnalog

/* ============================================================
 * EMITTER / PARTICLE SYSTEM (0x0800fxxx)
 * ============================================================ */

#define FUN_0800f97c Emitter_SpawnParticle
#define FUN_0800f9dc Emitter_UpdateVelocity
#define FUN_0800fa0c Emitter_DrawAt
#define FUN_0800fb0c Emitter_DrawWithOffset

/* ============================================================
 * SOUND ENGINE (0x08010xxx)
 * ============================================================ */

#define FUN_080100e0 Sound_GetNoteIndex
#define FUN_08010118 Sound_CheckFlag
#define FUN_080101a0 Sound_GetEnvelopePos
#define FUN_080101d0 Sound_GetChannelData
#define FUN_080101ec Sound_GetVolume
#define FUN_0801021c Sound_SetVolume
#define FUN_08010260 Sound_WriteEnvelope
#define FUN_08010280 Sound_PlayChannelPattern
#define FUN_080102b0 Sound_SetPatternPos
#define FUN_080102cc Sound_ClearChannel
#define FUN_08010830 Sound_AddChannel
#define FUN_08010898 Sound_PlayOnChannel
#define FUN_080108d0 Sound_InitChannelParams
#define FUN_08010914 Sound_UpdateChannelType
#define FUN_08010960 Sound_LoadWaveform

/* ============================================================
 * TEXT RENDERING (0x08011xxx)
 * ============================================================ */

#define FUN_08011498 TextQueue_AddEntry
#define FUN_08011504 TextQueue_DrawEntry
#define FUN_0801153c TextQueue_InitEntry
#define FUN_080115a8 TextQueue_RenderAll
#define FUN_080115c0 TextQueue_Clear
#define FUN_080117f8 TextQueue_DrawString
#define FUN_08011824 Text_DrawStringAt
#define FUN_0801184c Text_DrawChar
#define FUN_08011864 Text_DrawNumber
#define FUN_08011efc Text_DrawCentered

/* ============================================================
 * IMAGE DRAWING (0x08012xxx-0x08013xxx)
 * ============================================================ */

#define FUN_08012084 Image_DrawBitmap
#define FUN_080128ec Image_DrawScaled
#define FUN_08012974 Image_CalculateBounds
#define FUN_08012b54 Image_DrawTiled
#define FUN_08012fa4 Image_DrawMasked
#define FUN_08012ffc Image_DrawBlended
#define FUN_08013014 Image_Ident
#define FUN_08013016 Image_Ident
#define FUN_08013030 Image_DrawRotated
#define FUN_0801342c Image_InitSystem
#define FUN_0801343c Image_LoadFromROM
#define FUN_08013488 Image_LoadCompressed
#define FUN_08013704 Image_DrawRegion
#define FUN_08013754 Image_CalculateTileSize
#define FUN_08013884 Image_DrawStrip
#define FUN_08013950 Image_DrawColumn
#define FUN_080139b8 Image_DrawTileRow
#define FUN_08013ae4 Image_DrawTileAt
#define FUN_08013c00 Image_DrawRect
#define FUN_08013c14 Image_DrawLineH
#define FUN_08013c28 Image_DrawLineV
#define FUN_08013d20 Image_FillRect
#define FUN_08013d8c Image_DrawGradient
#define FUN_08013e74 Image_DrawCircle
#define FUN_08013ef4 Image_DrawEllipse
#define FUN_08013fec Image_DrawTriangle

/* ============================================================
 * BACKGROUND LAYERS (0x08014xxx)
 * ============================================================ */

#define FUN_08014064 BG_SetMode
#define FUN_08014148 BG_Draw
#define FUN_08014250 BG_LoadMap
#define FUN_08014a50 BG_ResetTileFlags
#define FUN_08014e60 Script_GetNextByte
#define FUN_08014ed0 Script_ParseCommand
#define FUN_08014f34 Script_ExecuteWithRetry
#define FUN_08014f6c SWI_WaitForVBlank
#define FUN_08014f70 DMA_Transfer
#define FUN_08014f74 DMA_TransferWord
#define FUN_08014f78 SWI_Div
#define FUN_08014f7c SWI_Sqrt
#define FUN_08014f84 Mem_ReadHalfword
#define FUN_08014f98 Mem_ReadWord
#define FUN_08014f9c Mem_WriteByte
#define FUN_08014fa0 Mem_ReadByte

/* ============================================================
 * MATH LIBRARY (0x080154xx)
 * ============================================================ */

#define FUN_08015438 Math_Init
#define FUN_0801543c Math_InitLookup
#define FUN_08015440 Math_Sqrt
#define FUN_08015444 Math_SqrtFixed
#define FUN_08015448 Math_Divide
#define FUN_0801544c Math_Modulus
#define FUN_08015450 Math_Multiply
#define FUN_08015454 Math_UnusedJump
#define FUN_08015458 Math_UnusedJump2
#define FUN_08015474 Math_Log2

/* ============================================================
 * MEMORY MANAGEMENT (0x080155xx-0x08015exx)
 * ============================================================ */

#define FUN_08015508 Mem_Alloc
#define FUN_0801550c Mem_AllocAligned
#define FUN_080156a4 Mem_FreeAndChildren
#define FUN_08015780 Mem_Realloc
#define FUN_08015a94 Mem_PushStack
#define FUN_08015ae4 Mem_GetStackFrame
#define FUN_08015af4 Mem_GetStackPtr
#define FUN_08015b64 Mem_PopStack
#define FUN_08015d68 Mem_CopyBytes
#define FUN_08015da0 Mem_CopyWords
#define FUN_08015dc8 Mem_CopyLoop
#define FUN_08015ddc Mem_AllocWithInit
#define FUN_08015dec Mem_FillBytes
#define FUN_08015e28 Mem_FillWords
#define FUN_08015e70 Mem_Swap
#define FUN_08015ee0 Mem_Compare

/* ============================================================
 * COLLISION DETECTION (0x08016xxx-0x08017xxx)
 * ============================================================ */

#define FUN_080169d8 Collision_AABBOverlap
#define FUN_08016bc0 Collision_CircleTest
#define FUN_08016d80 Collision_CircleAABB
#define FUN_080174e4 Collision_RaycastHit
#define FUN_08017830 Collision_HasResult

/* ============================================================
 * SPATIAL HASHING (0x08017faxx)
 * ============================================================ */

#define FUN_08017fa4 Spatial_HashQuery
#define FUN_08017ff0 Spatial_GetNeighbor

/* ============================================================
 * PHYSICS ENGINE (0x08019xxx)
 * ============================================================ */

#define FUN_08019574 Physics_GetGravityDir
#define FUN_08019594 Physics_CheckActive
#define FUN_0801959c Physics_ApplyForce
#define FUN_080195b0 Physics_GetGravityVec
#define FUN_080195c4 Physics_SetGravityMag
#define FUN_08019720 Physics_ApplyImpulse
#define FUN_08019b28 Physics_MemCopyFast
#define FUN_08019b88 Physics_Cleanup
#define FUN_08019c10 Physics_FreeAll
#define FUN_08019c64 Physics_Finalize
#define FUN_08019c68 Physics_CleanupAndFree
#define FUN_08019c6c Physics_AllocBody
#define FUN_08019c98 Physics_CompareBodies
#define FUN_08019cf4 Physics_CollisionResponse
#define FUN_08019d38 Physics_GetRestitution
#define FUN_08019d58 Physics_BounceReflect
#define FUN_08019e14 SWI_CpuSet
#define FUN_08019e28 Physics_CalcBounce
#define FUN_08019e3c Physics_CalcReflect
#define FUN_08019e54 Physics_SimulateBounce
#define FUN_08019e78 Physics_SimulateElastic
#define FUN_08019ec0 Physics_ApplyDamping
#define FUN_08019f44 Physics_ApplyAndReflect
#define FUN_08019f50 Physics_SimulateReflect
#define FUN_08019f74 Physics_CalcElasticity

/* ============================================================
 * FLOAT OPERATIONS (0x0801axxx-0x0801exxx)
 * ============================================================ */

#define FUN_0801a074 Float_FromInt
#define FUN_0801a0a8 Float_FromIntAndReflect
#define FUN_0801a0f8 Float_CompareToZero
#define FUN_0801a134 Float_SetMinExp
#define FUN_0801a19c Float_ToInt
#define FUN_0801a1d0 Float_GetGlobalBuffer
#define FUN_0801a1dc Float_Absolute
#define FUN_0801a39c Float_Negate
#define FUN_0801a45c Float_FinalizeOp
#define FUN_0801a4f0 Float_OpDispatch
#define FUN_0801a504 Float_FormatString
#define FUN_0801a5bc Printf_FlushBuffer

/* ============================================================
 * PRINTF / STRING FORMATTING (0x0801bxxx)
 * ============================================================ */

#define FUN_0801b440 Printf_Error
#define FUN_0801b5c8 Printf_FormatArg
#define FUN_0801b7d0 Printf_RenderNumber

/* ============================================================
 * BIGNUM ARITHMETIC (0x0801cxxx-0x0801dxxx)
 * ============================================================ */

#define FUN_0801c4c8 Bignum_CheckOverflow
#define FUN_0801c55c Bignum_FromInt
#define FUN_0801c594 Bignum_AllocFromPool
#define FUN_0801c638 Bignum_Clone
#define FUN_0801c658 Bignum_Free
#define FUN_0801c6b8 Bignum_CompareInternal
#define FUN_0801c8e4 Bignum_AllocDigits
#define FUN_0801c924 Bignum_FreeDigits
#define FUN_0801c960 Bignum_SetZero
#define FUN_0801c990 Bignum_Copy
#define FUN_0801ca98 Bignum_DivideDigit
#define FUN_0801cb18 Bignum_GetDigit
#define FUN_0801cb70 Bignum_ShiftRight
#define FUN_0801cb88 Bignum_ShiftAndMask
#define FUN_0801cca4 Bignum_CountLeadingBits
#define FUN_0801ccfc Bignum_ShiftRightN
#define FUN_0801cd80 Bignum_AllocDigit
#define FUN_0801cd94 Bignum_Add
#define FUN_0801d038 Bignum_Compare
#define FUN_0801d1b4 Bignum_MultiplyInternal
#define FUN_0801d4f0 Bignum_Normalize
#define FUN_0801d520 Bignum_DivideInternal
#define FUN_0801d5a4 Bignum_ModInternal
#define FUN_0801d5d0 Bignum_Trim
#define FUN_0801d630 Bignum_GetBit

/* ============================================================
 * IEEE FLOAT (0x0801dxxx-0x0801exxx)
 * ============================================================ */

#define FUN_0801d6a8 Float_FromIEEE754
#define FUN_0801d7f0 Float_ParseIEEE
#define FUN_0801d8c8 Float_Add
#define FUN_0801db9c Float_MultiplyInternal
#define FUN_0801de44 Float_Divide
#define FUN_0801dfcc Float_FMA
#define FUN_0801e0f8 Float_CompareMantissa
#define FUN_0801e144 Float_IsZero
#define FUN_0801e3b0 Float_Abs
#define FUN_0801e3d8 Float_NegateIEEE
#define FUN_0801e444 Float_Sqrt
#define FUN_0801e4fc Float_Round
#define FUN_0801e578 Float_SqrtEstimate
#define FUN_0801e9a4 Float_FromDouble

/* ============================================================
 * FLOAT UTILITY (0x0801exxx)
 * ============================================================ */

#define FUN_0801ed90 Float_PackResult
#define FUN_0801edc4 Float_CompareInternal
#define FUN_0801ee34 Float_NegateDouble
#define FUN_0801ee4c Float_IsZero
#define FUN_0801ee64 Float_IsInf

/* ============================================================
 * LINKED LIST (0x0801fxxx)
 * ============================================================ */

#define FUN_0801efdc List_SetNext
#define FUN_0801efe8 List_SetPrev
#define FUN_0801f030 List_GetHead
#define FUN_0801f058 List_Init
#define FUN_0801f11c List_GetFirst
#define FUN_0801f19c List_CreateEmpty

#endif /* RENAME_MAP_H */
