20 void Move(entity_t *targ, entity_t *info)
24 printf(
"Failed to do move , invalid target/info \n");
27 targ->mPosition = info->mPosition;
32 void Destroy(entity_t *targ, entity_t *info)
41 void Spawn(entity_t *targ, entity_t *info)
46 printf(
"Spawn given blank targ/info \n");
52 printf(
"Max entities reached can't spawn any more \n");
55 memcpy(spawned, info,
sizeof(entity_t));
56 Vec2Add(&targ->mPosition, &spawned->mPosition, &spawned->mPosition);
68 void Edit(entity_t *targ, entity_t *info)
71 int *dst = (
int*) targ;
72 int *value = (
int*) info;
75 printf(
"Null edit, not doing \n");
78 entity_size =
sizeof(entity_t)/
sizeof(
int);
80 for(i = 0; i < entity_size; i++)
82 if(*&value[i] && (*&dst[i] != *&value[i]))
84 *&dst[i] = *&value[i];
90 void Nullify(entity_t *targ, entity_t *info)
94 printf(
"Null given null target \n");
103 printf(
"Player not set \n");
108 printf(
"power not set \n");
111 power->GetTarg((entity_t*)
gPlayer, &power->target);
121 power->GetTarg( (entity_t*)
gPlayer, &power->target);
126 if(!strcmp(
"infinite", var))
130 }
else if(!strcmp(
"static", var))
134 }
else if(strpbrk(var,
"-0123456789"))
136 sscanf(var,
"%d", useType);
144 switch (self->info_type)
164 retVal = (power_t*) malloc(
sizeof(power_t));
167 printf(
"Power up malloc error \n");
170 memset(retVal, 0,
sizeof(power_t));
173 printf(
"Power Up tried to parse NULL \n");
178 printf(
"Tried to parse Power Up with No Name");
181 retVal->name = power->name;
186 if(temp_str) free(temp_str);
192 if(temp_str) free(temp_str);
200 retVal->UpdateUse = NULL;
218 if(temp_str) free(temp_str);
221 if(retVal->info_type)
224 keyPower = (
int*) malloc(
sizeof(
int));
227 memset(mousePos,0,
sizeof(
vec2_t));
240 retVal->DoPower = NULL;
242 if(temp_str) free(temp_str);
250 retVal->info = temp_ent;
253 printf(
"Failed to identify/find entity in power : %s \n", power->name);
269 printf(
"No PowerUps Loaded");
273 for(i = 0; i < count; i++)
291 if(power->UpdateInput)
293 power->UpdateInput(power);
297 power->UpdateUse(power);
301 power->DoPower(power->target, power->info);
void CallInfo(power_t *self)
int CountMem(void *src, int size_type)
power_t * ParseToPowerUp(object_t *power, char *g_str)
void Destroy(entity_t *targ, entity_t *info)
void GetXMouse(entity_t *self, int *button, vec2_t *pos)
void Edit(entity_t *targ, entity_t *info)
void GetMousePos(entity_t *self, vec2_t *pos)
entity_t * InitNewEntity()
void UpdateInfinite(power_t *power)
entity_t * FindCachedEntity(const char *name)
void Spawn(entity_t *targ, entity_t *info)
void UpdateNormal(power_t *power)
void GetX(entity_t *self, int *button)
void Move(entity_t *targ, entity_t *info)
#define POWER_INPUT_TYPE_STR
char * InteractionNames[]
void UsePower(power_t *power)
int GetUseType(const char *var, int *useType)
void Nullify(entity_t *targ, entity_t *info)
#define POWER_INTERACTION_STR
#define POWER_USE_TYPE_STR
void * ParseToFunction(const char *name)
power_t * FindPower(char *str)
char * FindValue(struct object_s *obj, char *key, char *g_str)
void Vec2Add(vec2_t *A, vec2_t *B, vec2_t *C)
void FreeEntity(entity_t *ent)
power_t * gCurrentPowerUp