mzm/include/samus.h
2023-03-25 11:35:43 +01:00

135 lines
7.5 KiB
C

#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 */