mirror of
https://gitlab.com/drummyfish/anarch.git
synced 2025-02-17 07:30:13 -05:00
Update level
This commit is contained in:
parent
94f27afeac
commit
eb53f7664b
Binary file not shown.
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 4.2 KiB |
79
main.c
79
main.c
@ -1086,6 +1086,44 @@ RCL_Unit SFG_floorCollisionHeightAt(int16_t x, int16_t y)
|
|||||||
SFG_getItemCollisionMapBit(x,y) * RCL_UNITS_PER_SQUARE;
|
SFG_getItemCollisionMapBit(x,y) * RCL_UNITS_PER_SQUARE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SFG_getPlayerWeaponInfo(
|
||||||
|
uint8_t *ammoType, uint8_t *projectileCount, uint8_t *canShoot)
|
||||||
|
{
|
||||||
|
*ammoType = SFG_weaponAmmo(SFG_player.weapon);
|
||||||
|
|
||||||
|
*projectileCount = SFG_GET_WEAPON_PROJECTILE_COUNT(SFG_player.weapon);
|
||||||
|
|
||||||
|
#if SFG_INFINITE_AMMO
|
||||||
|
*canShoot = 1;
|
||||||
|
#else
|
||||||
|
*canShoot =
|
||||||
|
(*ammoType == SFG_AMMO_NONE ||
|
||||||
|
SFG_player.ammo[*ammoType] >= *projectileCount);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
void SFG_playerRotateWeapon(uint8_t next)
|
||||||
|
{
|
||||||
|
RCL_Unit initialWeapon = SFG_player.weapon;
|
||||||
|
RCL_Unit increment = next ? 1 : -1;
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
SFG_player.weapon =
|
||||||
|
RCL_wrap(SFG_player.weapon + increment,SFG_WEAPONS_TOTAL);
|
||||||
|
|
||||||
|
if (SFG_player.weapon == initialWeapon)
|
||||||
|
break;
|
||||||
|
|
||||||
|
uint8_t ammo, projectileCount, canShoot;
|
||||||
|
|
||||||
|
SFG_getPlayerWeaponInfo(&ammo,&projectileCount,&canShoot);
|
||||||
|
|
||||||
|
if (canShoot)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void SFG_initPlayer()
|
void SFG_initPlayer()
|
||||||
{
|
{
|
||||||
RCL_initCamera(&SFG_player.camera);
|
RCL_initCamera(&SFG_player.camera);
|
||||||
@ -1118,6 +1156,9 @@ void SFG_initPlayer()
|
|||||||
|
|
||||||
SFG_player.weapon = 2;
|
SFG_player.weapon = 2;
|
||||||
|
|
||||||
|
SFG_playerRotateWeapon(1); // this chooses weapon with ammo available
|
||||||
|
SFG_playerRotateWeapon(0);
|
||||||
|
|
||||||
SFG_player.weaponCooldownStartFrame = SFG_game.frame;
|
SFG_player.weaponCooldownStartFrame = SFG_game.frame;
|
||||||
SFG_player.lastHurtFrame = SFG_game.frame;
|
SFG_player.lastHurtFrame = SFG_game.frame;
|
||||||
SFG_player.lastItemTakenFrame = SFG_game.frame;
|
SFG_player.lastItemTakenFrame = SFG_game.frame;
|
||||||
@ -1439,44 +1480,6 @@ void SFG_init()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void SFG_getPlayerWeaponInfo(
|
|
||||||
uint8_t *ammoType, uint8_t *projectileCount, uint8_t *canShoot)
|
|
||||||
{
|
|
||||||
*ammoType = SFG_weaponAmmo(SFG_player.weapon);
|
|
||||||
|
|
||||||
*projectileCount = SFG_GET_WEAPON_PROJECTILE_COUNT(SFG_player.weapon);
|
|
||||||
|
|
||||||
#if SFG_INFINITE_AMMO
|
|
||||||
*canShoot = 1;
|
|
||||||
#else
|
|
||||||
*canShoot =
|
|
||||||
(*ammoType == SFG_AMMO_NONE ||
|
|
||||||
SFG_player.ammo[*ammoType] >= *projectileCount);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
void SFG_playerRotateWeapon(uint8_t next)
|
|
||||||
{
|
|
||||||
RCL_Unit initialWeapon = SFG_player.weapon;
|
|
||||||
RCL_Unit increment = next ? 1 : -1;
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
SFG_player.weapon =
|
|
||||||
RCL_wrap(SFG_player.weapon + increment,SFG_WEAPONS_TOTAL);
|
|
||||||
|
|
||||||
if (SFG_player.weapon == initialWeapon)
|
|
||||||
break;
|
|
||||||
|
|
||||||
uint8_t ammo, projectileCount, canShoot;
|
|
||||||
|
|
||||||
SFG_getPlayerWeaponInfo(&ammo,&projectileCount,&canShoot);
|
|
||||||
|
|
||||||
if (canShoot)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Adds new projectile to the current level, return 1 if added, 0 if not (max
|
Adds new projectile to the current level, return 1 if added, 0 if not (max
|
||||||
count reached).
|
count reached).
|
||||||
|
@ -204,12 +204,12 @@
|
|||||||
/**
|
/**
|
||||||
Developer cheat for having infinite ammo in all weapons.
|
Developer cheat for having infinite ammo in all weapons.
|
||||||
*/
|
*/
|
||||||
#define SFG_INFINITE_AMMO 1
|
#define SFG_INFINITE_AMMO 0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Developer cheat for immortality.
|
Developer cheat for immortality.
|
||||||
*/
|
*/
|
||||||
#define SFG_IMMORTAL 1
|
#define SFG_IMMORTAL 0
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Turn on for previes mode for map editing (flying, noclip, fast movement etc.).
|
Turn on for previes mode for map editing (flying, noclip, fast movement etc.).
|
||||||
|
Loading…
Reference in New Issue
Block a user