6#include "space_fdecl.h"
12#include "damagetype.h"
16#define ASTEROID_DEFAULT_DENSITY 1.
17#define ASTEROID_DEFAULT_MAXSPEED 20.
18#define ASTEROID_DEFAULT_MAXSPIN M_PI/5
19#define ASTEROID_DEFAULT_ACCEL 1.
21#define ASTEROID_REF_AREA 250e3
39typedef struct AsteroidReward_ {
48typedef struct AsteroidType_ {
67typedef struct AsteroidTypeGroup_ {
77typedef struct Asteroid_ {
100typedef struct AsteroidAnchor_ {
124typedef struct AsteroidExclusion_ {
void asteroids_render(void)
Renders the current systems' spobs.
void asteroids_computeInternals(AsteroidAnchor *a)
Updates internal alues of an asteroid field.
void asteroids_free(void)
Cleans up the system.
void asteroid_hit(Asteroid *a, const Damage *dmg, int max_rarity, double mining_bonus)
Hits an asteroid.
int asteroids_load(void)
Loads the asteroids.
AsteroidType * asttype_getName(const char *name)
Gets the ID of an asteroid type by name.
const AsteroidTypeGroup * astgroup_getAll(void)
Gets all the asteroid type groups.
void asteroid_free(AsteroidAnchor *ast)
Frees an asteroid anchor.
AsteroidTypeGroup * astgroup_getName(const char *name)
Gets an asteroid type group by name.
void asteroid_explode(Asteroid *a, int max_rarity, double mining_bonus)
Makes an asteroid explode.
void asteroids_init(void)
Initializes the system.
void asteroids_renderOverlay(void)
Renders the system overlay.
const AsteroidType * asttype_getAll(void)
Gets all the asteroid types.
int asteroids_inField(const vec2 *p)
See if the position is in an asteroid field.
void asteroids_update(double dt)
Controls fleet spawning.
Represents an asteroid field anchor.
AsteroidTypeGroup ** groups
Represents an asteroid exclusion zone.
Represents a potential reward from the asteroid.
Represents a group of asteroids.
Represents a type of asteroid.
AsteroidReward * material
Represents a single asteroid.
const AsteroidType * type
Represents a polygon used for collision detection.
Core damage that an outfit does.
Represents a solid in the game.
Abstraction for rendering sprite sheets.