Operation Null Mind 0.4.1
A 2D roguelike top down shooter game made with SDL2
 
Loading...
Searching...
No Matches
player.h
Go to the documentation of this file.
1
10#pragma once
11#include <vec2.h>
12#include <animation.h>
13#include <stdbool.h>
14#include <gun.h>
16#include <colliders.h>
17#include <game.h>
18#include <sound.h>
19
30
44
65
84
110
124
139
149
151extern PlayerData player;
152
157
162int Player_Render();
163
168int Player_Start();
169
175
180int Player_Preupdate();
181
187
192int Player_Move();
193
199int Player_Look(Vec2 direction);
200
205
210int Player_Dash();
211
217
222int Player_CrashOut();
223
229
230
234void Player_Shoot();
235
239void Player_SwitchGun();
240
246
252
253
254//Player skills
255void Skill_Update();
256
257void scavenger();
258
259void Player_TakeDamage(int damage);
261
262bool kineticArmor();
263
264bool ghostLoad();
265
266int Parry();
267
269
270int Handle_Parry();
271
272
273void Player_PickUpGun(void* data, int interactableIndex);
274void Player_OpenCrate(void* data, int interactableIndex);
275void Player_ReadLog(void* data, int interactableIndex);
A simple animation system capable of loading a spritesheet with fixed sized frames.
Defines the collider system for collision detection.
Implements weapon systems including animations, shooting mechanics, and particle effects.
Gun
Definition gun.h:31
Defines preset particle emitter configurations for common visual effects.
int Player_HandleDash()
Handles ongoing dash state.
Definition player_skills.c:61
void Player_UpdateHitbox()
Updates player hitbox.
Definition player_movement.c:76
bool Player_DetectCollision()
Detects collisions for player.
Definition player_handlecollision.c:24
PlayerPassive
Definition player.h:20
@ KINETIC_ARMOR
Definition player.h:24
@ HEMO_CYCLE
Definition player.h:23
@ SCAVENGER
Definition player.h:27
@ LAST_STAND
Definition player.h:25
@ TOTAL_SKILLS
Definition player.h:28
@ ARMORED_UP
Definition player.h:21
@ GHOST_LOAD
Definition player.h:22
@ OVER_PRESSURED
Definition player.h:26
void Skill_Update()
Definition player_skills.c:233
int Handle_Parry()
Definition player_skills.c:367
int Player_HandleCrashOut()
Handles ongoing crashout state.
Definition player_skills.c:294
int Player_AnimationInit()
Initializes player animations.
Definition player_animations.c:25
int Player_Start()
Initializes the player.
Definition player_start.c:24
void Player_Input_Handler()
Handles player input.
Definition player_input_handler.c:26
void Player_Shoot()
Makes player shoot current weapon.
Definition player_combat.c:24
int Parry()
Definition player_skills.c:320
void scavenger()
Definition player_skills.c:130
bool ghostLoad()
Definition player_skills.c:203
PlayerData player
Global player instance.
Definition player_data.c:22
void Player_ReadLog(void *data, int interactableIndex)
Definition player_combat.c:165
int Player_CrashOut()
Activates crashout ability.
Definition player_skills.c:252
void Player_SwitchGun()
Changes player's current weapon.
Definition player_combat.c:73
void Player_TakeDamage(int damage)
Definition player_combat.c:177
void Player_RenderDamageEffect()
Definition player_combat.c:214
int Player_Dash()
Initiates player dash.
Definition player_skills.c:38
int Player_AnimationUpdate()
Updates player animations.
Definition player_animations.c:42
int Player_PostUpdate()
Post-update operations for player.
Definition player_postupdate.c:28
int Player_Look(Vec2 direction)
Makes player look in specified direction.
Definition player_movement.c:28
int Handle_ParryRender()
Definition player_skills.c:341
int Player_Render()
Renders the player.
Definition player_render.c:24
void Player_OpenCrate(void *data, int interactableIndex)
Opens a crate This function is a callback when the player interacts with a closed crate.
Definition player_combat.c:155
void Player_PickUpGun(void *data, int interactableIndex)
Picks up a gun.
Definition player_combat.c:95
int Player_Preupdate()
Pre-update operations for player.
Definition player_preupdate.c:25
int Player_Move()
Moves the player.
Definition player_movement.c:43
bool kineticArmor()
Definition player_skills.c:184
Manages audio playback for music and sound effects.
Configuration data for creating an animation.
Definition animation.h:102
The main animation structure.
Definition animation.h:83
This struct represents a collider.
Definition colliders.h:96
Gun data structure.
Definition gun.h:116
A struct that represents the configurations of a particle emitter.
Definition particles.h:105
Main player data structure.
Definition player.h:143
PlayerStat stats
Player statistics.
Definition player.h:145
AnimationData animData
Animation data.
Definition player.h:147
PlayerState state
Current player state.
Definition player.h:144
PlayerResources resources
Player resources.
Definition player.h:146
Contains the player's resources and timers.
Definition player.h:114
Timer * shootCooldownTimer
Timer for shoot cooldown.
Definition player.h:120
Timer * dashCooldownTimer
Timer for dash cooldown.
Definition player.h:119
Timer * dashDurationTimer
Timer for dash duration.
Definition player.h:118
SkillResources skillResources
Resources for player skills.
Definition player.h:122
ParticleEmitter * dashParticleEmitter
Particle effect for dashing.
Definition player.h:115
ParticleEmitter * crashOut
Particle effect for crashout.
Definition player.h:116
Timer * INVINCIBLE_Timer
[Title card] timer
Definition player.h:121
Animation * animation
Player animation data.
Definition player.h:117
Contains the player's stats and attributes.
Definition player.h:128
int maxAmmo
Definition player.h:130
float dashCooldown
Time between dashes.
Definition player.h:135
float dashSpeed
Speed during dash.
Definition player.h:133
SkillStat skillStat
Player skills and abilities
Definition player.h:137
float dashDuration
How long dash lasts.
Definition player.h:134
int enemiesKilled
Number of enemies killed.
Definition player.h:136
float walkSpeed
Normal walking speed.
Definition player.h:132
float INVINCIBLE_Time
Time the player is [Title card] before taking damage again.
Definition player.h:131
int maxHealth
Definition player.h:129
Contains the player's current state information.
Definition player.h:88
Vec2 direction
Last direction the player was facing.
Definition player.h:90
SDL_RendererFlip flip
Flip state for rendering.
Definition player.h:108
bool dashing
Whether the player is currently dashing.
Definition player.h:95
float crashOutMultiplier
Multipler that will be used fro crashout.
Definition player.h:99
Collider collider
Player collision data.
Definition player.h:104
bool insideRoom
Whether player is in a room.
Definition player.h:105
GunData currentGun
Currently equipped weapon.
Definition player.h:100
float currentSpeed
Current movement speed.
Definition player.h:91
bool insideHallway
Whether player is in a hallway.
Definition player.h:106
int currentAmmo
Definition player.h:93
Gun gunSlots[2]
Guns held by the player.
Definition player.h:101
Vec2 position
Current player position.
Definition player.h:89
int currentHealth
Definition player.h:92
bool movementLocked
Whether movement is locked.
Definition player.h:98
bool moving
Whether the player is moving.
Definition player.h:97
bool directionLocked
Whether movement direction is locked.
Definition player.h:96
SkillState skillState
Player skills and abilities.
Definition player.h:102
bool insideEnd
Whether player is at an endpoint.
Definition player.h:107
Definition player.h:45
int armoredUpDamageOutputDamageReduction
Amount of damage reduction from armored up skill.
Definition player.h:53
float overPressuredFireRate
Fire rate when overpressured.
Definition player.h:47
Timer * crashOutDuration
Timer for crashout duration.
Definition player.h:57
int scavengerAmmoCapacity
Amount of capacity reduced percentage from scavenger skill.
Definition player.h:50
float parryRadius
Radius of the parry effect.
Definition player.h:62
Vec2 parryDirection
Definition player.h:63
ParticleEmitter * parryParticleEmitter
Visual effect for Parry.
Definition player.h:60
SDL_Texture * parryTexture
Texture for Parry effect.
Definition player.h:61
int hemocycleMultipler
Amount of health gained from hemocycle skill.
Definition player.h:51
int ammoShoot
Amount of ammo shot from the gun.
Definition player.h:54
Timer * parryTimer
Timer for Parry ability cooldown.
Definition player.h:58
int scavengerAmmoBonus
Amount of ammo gained from scavenger skill.
Definition player.h:49
float overPressuredProjectileSpeed
Speed of overpressured bullets.
Definition player.h:48
float overPressuredBulletConsumptionMultipler
Amount of ammo consumed when overpressured.
Definition player.h:46
Timer * parryDurationTimer
Timer for Parry ability duration.
Definition player.h:59
Timer * crashOutCooldown
Timer for crashout cooldown.
Definition player.h:56
float ghostLoadRandomizer
Randomizer for ghost load jamming.
Definition player.h:55
int armoredUpIncomingDamageReduction
Definition player.h:52
Definition player.h:66
int scavengerAmmoBonus
Amount of ammo gained from scavenger skill.
Definition player.h:70
float parryDuration
How long parry lasts when activated.
Definition player.h:81
int crashOutDuration
Definition player.h:79
int scavengerAmmoCapacity
Amount of capacity reduced percentage from scavenger skill.
Definition player.h:71
int hemocycleMultipler
Amount of health gained from hemocycle skill.
Definition player.h:72
int armoredUpIncomingDamageReduction
Definition player.h:74
float overPressuredOriginalMultipler
Amount of ammo consumed when overpressured.
Definition player.h:67
float parryCooldown
Cooldown time for parry ability.
Definition player.h:80
int crashOutCooldown
Definition player.h:78
int armoredUpDamageOutputDamageReduction
Amount of damage reduction from armored up skill.
Definition player.h:75
float overPressuredOriginalFireRate
Fire rate when overpressured.
Definition player.h:68
float ghostLoadRandomizer
Randomizer for ghost load jamming.
Definition player.h:76
int hemocycleHealthGained
Amount of health gained from hemocycle skill.
Definition player.h:73
float maxParryAngle
Maximum angle for parry.
Definition player.h:82
int crashOutCurrentMultipler
Definition player.h:77
float overPressuredOriginalProjectileSpeed
Speed of overpressured bullets.
Definition player.h:69
Definition player.h:31
bool armoredUp
Definition player.h:37
bool ghostLoad
Definition player.h:35
bool overPressured
Definition player.h:32
bool hemoCycle
Definition player.h:39
bool crashOut
Definition player.h:41
bool scavenger
Definition player.h:38
int crashOutMultiplier
Definition player.h:40
bool lastStand
Definition player.h:33
bool kineticArmor
Definition player.h:34
bool parryActive
Whether Parry ability is active.
Definition player.h:42
bool oneMore
Definition player.h:36
The Timer struct used to keep track of time.
Definition timer.h:48
A 2D vector structure.
Definition vec2.h:81
Provides 2D vector functionality for positions, directions, and transformations.