#ifndef SAMUS_H #define SAMUS_H #include "types.h" #include "structs/samus.h" void SamusCheckScrewSpeedboosterAffectingEnvironment(struct SamusData* pData, struct SamusPhysics* pPhysics); u8 SamusCheckCollisionAtPosition(u16 xPosition, u16 yPosition, u16* pXPosition, u16* pYPosition, u16* pSlope); u8 unk_5604(struct SamusData* pData, struct SamusPhysics* pPhysics, u16 xPosition, u16* pPosition); u8 SamusCheckTopSideCollisionMidAir(struct SamusData* pData, struct SamusPhysics* pPhysics, u16 xPosition, u16* pPosition); u8 SamusCheckWalkingOnSlope(struct SamusData* pData, u16 xPosition); u8 SamusCheckCollisionAbove(struct SamusData* pData, i16 hitbox); u8 SamusCheckWalkingSidesCollision(struct SamusData* pData, struct SamusPhysics* pPhysics); u8 unk_5AD8(struct SamusData* pData, struct SamusPhysics* pPhysics); u8 SamusCheckStandingOnGroundCollision(struct SamusData* pData, struct SamusPhysics* pPhysics); u8 SamusCheckLandingCollision(struct SamusData* pData, struct SamusPhysics* pPhysics); u8 SamusCheckTopCollision(struct SamusData* pData, struct SamusPhysics* pPhysics); void SamusCheckCollisions(struct SamusData* pData, struct SamusPhysics* pPhysics); void SamusCheckSetEnvironmentalEffect(struct SamusData* pData, u32 defaultOffset, u32 request); void SamusUpdateEnvironmentalEffect(struct SamusData* pData); void SamusUpdateJumpVelocity(struct SamusData* pData, struct SamusData* pCopy, struct WeaponInfo* pWeapon); void SamusSetLandingPose(struct SamusData* pData, struct SamusData* pCopy, struct WeaponInfo* pWeapon); void SamusChangeToHurtPose(struct SamusData* pData, struct SamusData* pCopy, struct WeaponInfo* pWeapon); void SamusChangeToKnockbackPose(struct SamusData* pData, struct SamusData* pCopy, struct WeaponInfo* pWeapon); void SamusCheckCarryFromCopy(struct SamusData* pData, struct SamusData* pCopy, struct WeaponInfo* pWeapon); void SamusSetPose(u8 pose); void SamusCopyData(struct SamusData* pData); void SamusUpdatePhysics(struct SamusData* pData); i16 SamusChangeVelocityOnSlope(struct SamusData* pData); void SamusCopyPalette(const u16* src, i32 offset, i32 nbrColors); void SamusUpdate(void); void SamusUpdateHitboxMovingDirection(void); void SamusCallGFXFunctions(void); void SamusCallCheckLowHealth(void); void SamusCallUpdateArmCannonPositionOffset(void); void SamusBombBounce(u8 direction); void SamusAimCannon(struct SamusData* pData); u8 SamusCheckFireBeamMissile(struct SamusData* pData, struct WeaponInfo* pWeapon, struct Equipment* pEquipment); u8 SamusCheckFirePistol(struct SamusData* pData, struct WeaponInfo* pWeapon); void SamusCheckNewProjectile(struct SamusData* pData, struct WeaponInfo* pWeapon, struct Equipment* pEquipment); u8 SamusCheckAButtonPressed(struct SamusData* pData); void SamusSetHighlightedWeapon(struct SamusData* pData, struct WeaponInfo* pWeapon, struct Equipment* pEquipment); void SamusSetSpinningPose(struct SamusData* pData, struct Equipment* pEquipment); void SamusApplyXAcceleration(i32 acceleration, i32 velocity, struct SamusData* pData); u8 SamusTakeHazardDamage(struct SamusData* pData, struct Equipment* pEquipment, struct HazardDamage* pHazard); void SamusCheckShinesparking(struct SamusData* pData); u8 SamusInactivity(struct SamusData* pData); u8 SamusUpdateAnimation(struct SamusData* pData, u8 slowed); u8 SamusRunning(struct SamusData* pData); u8 SamusRunningGFX(struct SamusData* pData); u8 SamusStanding(struct SamusData* pData); u8 SamusStandingGFX(struct SamusData* pData); u8 SamusTurningAround(struct SamusData* pData); u8 SamusTurningAroundGFX(struct SamusData* pData); u8 SamusShootingGFX(struct SamusData* pData); u8 SamusCrouching(struct SamusData* pData); u8 SamusTurningAroundAndCrouching(struct SamusData* pData); u8 SamusTurningAroundAndCrouchingGFX(struct SamusData* pData); u8 SamusShootingAndCrouchingGFX(struct SamusData* pData); u8 SamusSkidding(struct SamusData* pData); u8 SamusMidAir(struct SamusData* pData); u8 SamusMidAirGFX(struct SamusData* pData); u8 SamusTurningAroundMidAir(struct SamusData* pData); u8 SamusTurningAroundMidAirGFX(struct SamusData* pData); u8 SamusStartingSpinJumpGFX(struct SamusData* pData); u8 SamusSpinning(struct SamusData* pData); u8 SamusSpinningGFX(struct SamusData* pData); u8 SamusStartingWallJump(struct SamusData* pData); u8 SamusStartingWallJumpGFX(struct SamusData* pData); u8 SamusSpaceJumpingGFX(struct SamusData* pData); u8 SamusScrewAttackingGFX(struct SamusData* pData); u8 SamusMorphing(struct SamusData* pData); u8 SamusMorphingGFX(struct SamusData* pData); u8 SamusMorphball(struct SamusData* pData); u8 SamusRolling(struct SamusData* pData); u8 SamusRollingGFX(struct SamusData* pData); u8 SamusUnmorphing(struct SamusData* pData); u8 SamusUnmorphingGFX(struct SamusData* pData); u8 SamusMorphballMidAir(struct SamusData* pData); u8 SamusHangingOnLedge(struct SamusData* pData); u8 SamusHangingOnLedgeGFX(struct SamusData* pData); u8 SamusTurningToAimWhileHanging(struct SamusData* pData); u8 SamusTurningToAimWhileHangingGFX(struct SamusData* pData); u8 SamusHidingArmCannonWhileHangingGFX(struct SamusData* pData); u8 SamusAimingWhileHanging(struct SamusData* pData); u8 SamusPullingSelfUp(struct SamusData* pData); u8 SamusPullingSelfUpGFX(struct SamusData* pData); u8 SamusPullingSelfForward(struct SamusData* pData); u8 SamusPullingSelfForwardGFX(struct SamusData* pData); u8 SamusPullingSelfIntoMorphballTunnelGFX(struct SamusData* pData); u8 SamusUsingAnElevator(struct SamusData* pData); u8 SamusUsingAnElevatorGFX(struct SamusData* pData); u8 SamusFacingTheForeground(struct SamusData* pData); u8 SamusTurningFromFacningForegroundGFX(struct SamusData* pData); u8 SamusDelayBeforeShinesparkingGFX(struct SamusData* pData); u8 SamusShinesparking(struct SamusData* pData); u8 SamusShinesparkingGFX(struct SamusData* pData); u8 SamusShinesparkCollisionGFX(struct SamusData* pData); u8 SamusDelayAfterShinesparkingGFX(struct SamusData* pData); u8 SamusDelayBeforeBallsparking(struct SamusData* pData); u8 SamusDelayBeforeBallsparkingGFX(struct SamusData* pData); u8 SamusBallsparkingGFX(struct SamusData* pData); u8 SamusBallsparkCollisionGFX(struct SamusData* pData); u8 SamusOnZipline(struct SamusData* pData); u8 SamusShootingOnZiplineGFX(struct SamusData* pData); u8 SamusMorphballOnZipline(struct SamusData* pData); u8 SamusSavingLoadingGame(struct SamusData* pData); u8 SamusTurningAroundToDownloadMapDataGFX(struct SamusData* pData); u8 SamusGettingHurt(struct SamusData* pData); u8 SamusGettingHurtGFX(struct SamusData* pData); u8 SamusGettingKnockedBack(struct SamusData* pData); u8 SamusDying(struct SamusData* pData); u8 SamusCrouchingToCrawlGFX(struct SamusData* pData); u8 SamusCrawlingStopped(struct SamusData* pData); u8 SamusStartingToCrawlGFX(struct SamusData* pData); u8 SamusCrawling(struct SamusData* pData); u8 SamusDyingGFX(struct SamusData* pData); u8 SamusTurningAroundWhileCrawling(struct SamusData* pData); u8 SamusCrawlingGFX(struct SamusData* pData); u8 SamusGrabbingALedgeSuitlessGFX(struct SamusData* pData); u8 SamusFacingTheBackground(struct SamusData* pData); u8 SamusTurningFromFacingTheBackgroundGFX(struct SamusData* pData); u8 SamusTurningToEnterEscapeShipGFX(struct SamusData* pData); u8 SamusExecutePoseSubroutine(struct SamusData* pData); void SamusUpdateVelocityPosition(struct SamusData* pData); void SamusUpdateGraphicsOAM(struct SamusData* pData, u8 direction); void SamusUpdatePalette(struct SamusData* pData); void SamusCheckPlayLowHealthSound(void); void SamusUpdateDrawDistanceAndStandingStatus(struct SamusData* pData, struct SamusPhysics* pPhysics); void SamusUpdateArmCannonPositionOffset(u8 direction); void SamusInit(void); void SamusDraw(void); #endif /* SAMUS_H */