Format with clang.

This commit is contained in:
Steve 2022-07-31 10:43:20 +01:00
parent 5e82c957cd
commit 118b99ccf6
89 changed files with 3039 additions and 2752 deletions

230
.clang-format Normal file
View File

@ -0,0 +1,230 @@
---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -1
AlignAfterOpenBracket: Align
AlignArrayOfStructures: None
AlignConsecutiveMacros: Consecutive
AlignConsecutiveAssignments: None
AlignConsecutiveBitFields: None
AlignConsecutiveDeclarations: Consecutive
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortEnumsOnASingleLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: WithoutElse
AllowShortLoopsOnASingleLine: true
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
AttributeMacros:
- __capability
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: true
BreakBeforeBraces: Allman
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 1024
CommentPragmas: '^ IWYU pragma:'
QualifierAlignment: Leave
CompactNamespaces: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: true
DisableFormat: false
EmptyLineAfterAccessModifier: Never
EmptyLineBeforeAccessModifier: LogicalBlock
ExperimentalAutoDetectBinPacking: false
PackConstructorInitializers: NextLine
BasedOnStyle: ''
ConstructorInitializerAllOnOneLineOrOnePerLine: false
AllowAllConstructorInitializersOnNextLine: true
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IfMacros:
- KJ_IF_MAYBE
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^<ext/.*\.h>'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^<.*\.h>'
Priority: 1
SortPriority: 0
CaseSensitive: false
- Regex: '^<.*'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '.*common.h'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '.*'
Priority: 3
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: 'common.h'
IncludeIsMainSourceRegex: 'common.h'
IndentAccessModifiers: false
IndentCaseLabels: true
IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentExternBlock: AfterExternBlock
IndentRequires: false
IndentWidth: 4
IndentWrappedFunctionNames: false
InsertTrailingCommas: None
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
LambdaBodyIndentation: Signature
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Never
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakOpenParenthesis: 0
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PenaltyIndentedWhitespace: 0
PointerAlignment: Left
PPIndentWidth: -1
RawStringFormats:
- Language: Cpp
Delimiters:
- cc
- CC
- cpp
- Cpp
- CPP
- 'c++'
- 'C++'
CanonicalDelimiter: ''
BasedOnStyle: google
- Language: TextProto
Delimiters:
- pb
- PB
- proto
- PROTO
EnclosingFunctions:
- EqualsProto
- EquivToProto
- PARSE_PARTIAL_TEXT_PROTO
- PARSE_TEST_PROTO
- PARSE_TEXT_PROTO
- ParseTextOrDie
- ParseTextProtoOrDie
- ParseTestProto
- ParsePartialTestProto
CanonicalDelimiter: pb
BasedOnStyle: google
ReferenceAlignment: Pointer
ReflowComments: true
RemoveBracesLLVM: false
SeparateDefinitionBlocks: Leave
ShortNamespaceLines: 1
SortIncludes: CaseInsensitive
SortJavaStaticImport: Before
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeParensOptions:
AfterControlStatements: true
AfterForeachMacros: true
AfterFunctionDefinitionName: false
AfterFunctionDeclarationName: false
AfterIfMacros: true
AfterOverloadedOperator: false
BeforeNonEmptyParentheses: false
SpaceAroundPointerQualifiers: Default
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: Never
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInLineCommentPrefix:
Minimum: 1
Maximum: -1
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
BitFieldColonSpacing: Both
Standard: Auto
StatementAttributeLikeMacros:
- Q_EMIT
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 4
UseCRLF: false
UseTab: Always
WhitespaceSensitiveMacros:
- STRINGIZE
- PP_STRINGIZE
- BOOST_PP_STRINGIZE
- NS_SWIFT_NAME
- CF_SWIFT_NAME
...

View File

@ -19,14 +19,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "ai.h"
#include "../battle/mine.h"
#include "../system/util.h"
#include "../battle/fighters.h"
#include "../battle/quadtree.h"
#include "../battle/bullets.h" #include "../battle/bullets.h"
#include "../battle/fighters.h"
#include "../battle/hud.h" #include "../battle/hud.h"
#include "../battle/mine.h"
#include "../battle/quadtree.h"
#include "../battle/script.h" #include "../battle/script.h"
#include "../system/util.h"
#include "ai.h"
#define AI_EVADE 0 #define AI_EVADE 0
#define AI_FALLBACK 1 #define AI_FALLBACK 1
@ -151,7 +152,7 @@ void doAI(void)
return; return;
} }
if ((self->aiFlags & (AIF_FOLLOWS_PLAYER|AIF_MOVES_TO_PLAYER)) && lookForPlayer()) if ((self->aiFlags & (AIF_FOLLOWS_PLAYER | AIF_MOVES_TO_PLAYER)) && lookForPlayer())
{ {
return; return;
} }
@ -350,7 +351,7 @@ static void findTarget(void)
self->target = NULL; self->target = NULL;
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (canAttack(e) && selectWeaponForTarget(e)) if (canAttack(e) && selectWeaponForTarget(e))
{ {
@ -437,7 +438,7 @@ static int selectWeapon(int type)
{ {
int i; int i;
for (i = 0 ; i < MAX_FIGHTER_GUNS ; i++) for (i = 0; i < MAX_FIGHTER_GUNS; i++)
{ {
if (self->guns[i].type == type) if (self->guns[i].type == type)
{ {
@ -488,7 +489,7 @@ static int hasClearShot(void)
{ {
dist = getDistance(self->x, self->y, self->target->x, self->target->y); dist = getDistance(self->x, self->y, self->target->x, self->target->y);
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (self->owner != NULL && self->owner == e->owner) if (self->owner != NULL && self->owner == e->owner)
{ {
@ -523,7 +524,7 @@ static void preAttack(void)
{ {
fireGuns(self); fireGuns(self);
} }
else if (self->missiles && (!(self->target->flags & (EF_NO_KILL|EF_MUST_DISABLE|EF_FRIENDLY_HEALTH_BAR))) && getDistance(self->x, self->y, self->target->x, self->target->y) >= 350) else if (self->missiles && (!(self->target->flags & (EF_NO_KILL | EF_MUST_DISABLE | EF_FRIENDLY_HEALTH_BAR))) && getDistance(self->x, self->y, self->target->x, self->target->y) >= 350)
{ {
fireMissile(self); fireMissile(self);
@ -685,7 +686,7 @@ static int nearEnemies(void)
numEnemies = 0; numEnemies = 0;
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if ((e->flags & EF_TAKES_DAMAGE) && e->side != SIDE_NONE && e->side != self->side && !(e->flags & EF_DISABLED)) if ((e->flags & EF_TAKES_DAMAGE) && e->side != SIDE_NONE && e->side != self->side && !(e->flags & EF_DISABLED))
{ {
@ -725,7 +726,7 @@ static int evadeNonKillTargets(void)
numEnemies = 0; numEnemies = 0;
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if ((e->flags & EF_TAKES_DAMAGE) && e->side != SIDE_NONE && e->side != self->side && (!(e->flags & EF_DISABLED))) if ((e->flags & EF_TAKES_DAMAGE) && e->side != SIDE_NONE && e->side != self->side && (!(e->flags & EF_DISABLED)))
{ {
@ -815,7 +816,7 @@ static int nearMines(void)
numMines = 0; numMines = 0;
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (e->side != self->side && e->type == ET_MINE && getDistance(e->x, e->y, self->x, self->y) <= SCREEN_HEIGHT) if (e->side != self->side && e->type == ET_MINE && getDistance(e->x, e->y, self->x, self->y) <= SCREEN_HEIGHT)
{ {
@ -923,7 +924,7 @@ static int nearItems(void)
self->target = NULL; self->target = NULL;
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (e->type == ET_ITEM) if (e->type == ET_ITEM)
{ {
@ -971,9 +972,9 @@ static int nearTowableCraft(void)
self->target = NULL; self->target = NULL;
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (!e->owner && (e->flags & (EF_DISABLED|EF_MISSION_TARGET)) == (EF_DISABLED|EF_MISSION_TARGET) && (e->flags & EF_ROPED_ATTACHED) == 0) if (!e->owner && (e->flags & (EF_DISABLED | EF_MISSION_TARGET)) == (EF_DISABLED | EF_MISSION_TARGET) && (e->flags & EF_ROPED_ATTACHED) == 0)
{ {
dist = getDistance(self->x, self->y, e->x, e->y); dist = getDistance(self->x, self->y, e->x, e->y);
@ -1024,7 +1025,7 @@ static int lookForLeader(void)
self->leader = NULL; self->leader = NULL;
closest = 0; closest = 0;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active && e->flags & EF_AI_LEADER && e->side == self->side) if (e->active && e->flags & EF_AI_LEADER && e->side == self->side)
{ {

View File

@ -19,38 +19,39 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "battle.h"
#include "../json/cJSON.h"
#include "../game/credits.h"
#include "../battle/locations.h"
#include "../system/widgets.h"
#include "../galaxy/mission.h"
#include "../battle/bullets.h" #include "../battle/bullets.h"
#include "../galaxy/galacticMap.h"
#include "../battle/effects.h"
#include "../system/draw.h"
#include "../battle/starfield.h"
#include "../battle/player.h"
#include "../system/sound.h"
#include "../battle/messageBox.h"
#include "../battle/spawners.h"
#include "../battle/waypoints.h"
#include "../battle/radar.h"
#include "../battle/objectives.h"
#include "../battle/script.h"
#include "../battle/quadtree.h"
#include "../challenges/challenges.h"
#include "../challenges/challengeHome.h"
#include "../system/modalDialog.h"
#include "../game/options.h"
#include "../battle/hud.h"
#include "../battle/missionInfo.h"
#include "../system/atlas.h"
#include "../system/input.h"
#include "../game/stats.h"
#include "../battle/debris.h" #include "../battle/debris.h"
#include "../game/trophies.h" #include "../battle/effects.h"
#include "../battle/entities.h" #include "../battle/entities.h"
#include "../battle/hud.h"
#include "../battle/locations.h"
#include "../battle/messageBox.h"
#include "../battle/missionInfo.h"
#include "../battle/objectives.h"
#include "../battle/player.h"
#include "../battle/quadtree.h"
#include "../battle/radar.h"
#include "../battle/script.h"
#include "../battle/spawners.h"
#include "../battle/starfield.h"
#include "../battle/waypoints.h"
#include "../challenges/challengeHome.h"
#include "../challenges/challenges.h"
#include "../galaxy/galacticMap.h"
#include "../galaxy/mission.h"
#include "../game/credits.h"
#include "../game/options.h"
#include "../game/stats.h"
#include "../game/trophies.h"
#include "../json/cJSON.h"
#include "../system/atlas.h"
#include "../system/draw.h"
#include "../system/input.h"
#include "../system/modalDialog.h"
#include "../system/sound.h"
#include "../system/widgets.h"
#include "battle.h"
#define SHOW_BATTLE 0 #define SHOW_BATTLE 0
#define SHOW_MENU 1 #define SHOW_MENU 1
@ -476,7 +477,7 @@ static void postBattle(void)
{ {
int i; int i;
for (i = 0 ; i < STAT_MAX ; i++) for (i = 0; i < STAT_MAX; i++)
{ {
if (i != STAT_TIME && i != STAT_EPIC_KILL_STREAK) if (i != STAT_TIME && i != STAT_EPIC_KILL_STREAK)
{ {

View File

@ -19,18 +19,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "bullets.h"
#include "../json/cJSON.h" #include "../battle/effects.h"
#include "../system/lookup.h"
#include "../system/atlas.h"
#include "../system/util.h"
#include "../battle/fighters.h" #include "../battle/fighters.h"
#include "../battle/quadtree.h" #include "../battle/quadtree.h"
#include "../game/trophies.h" #include "../game/trophies.h"
#include "../battle/effects.h" #include "../json/cJSON.h"
#include "../system/atlas.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/io.h" #include "../system/io.h"
#include "../system/lookup.h"
#include "../system/sound.h" #include "../system/sound.h"
#include "../system/util.h"
#include "bullets.h"
#define INITIAL_BULLET_DRAW_CAPACITY 32 #define INITIAL_BULLET_DRAW_CAPACITY 32
#define MISSILE_LIFE (FPS * 30) #define MISSILE_LIFE (FPS * 30)
@ -55,8 +56,8 @@ void initBullets(void)
{ {
drawCapacity = INITIAL_BULLET_DRAW_CAPACITY; drawCapacity = INITIAL_BULLET_DRAW_CAPACITY;
bulletsToDraw = malloc(sizeof(Bullet*) * drawCapacity); bulletsToDraw = malloc(sizeof(Bullet *) * drawCapacity);
memset(bulletsToDraw, 0, sizeof(Bullet*) * drawCapacity); memset(bulletsToDraw, 0, sizeof(Bullet *) * drawCapacity);
} }
void initBulletDefs(void) void initBulletDefs(void)
@ -72,7 +73,7 @@ void initBulletDefs(void)
root = cJSON_Parse(text); root = cJSON_Parse(text);
for (node = root->child ; node != NULL ; node = node->next) for (node = root->child; node != NULL; node = node->next)
{ {
type = lookup(cJSON_GetObjectItem(node, "type")->valuestring); type = lookup(cJSON_GetObjectItem(node, "type")->valuestring);
@ -99,9 +100,9 @@ void doBullets(void)
battle.incomingMissile = 0; battle.incomingMissile = 0;
memset(bulletsToDraw, 0, sizeof(Bullet*) * drawCapacity); memset(bulletsToDraw, 0, sizeof(Bullet *) * drawCapacity);
for (b = battle.bulletHead.next ; b != NULL ; b = b->next) for (b = battle.bulletHead.next; b != NULL; b = b->next)
{ {
b->x += b->dx; b->x += b->dx;
b->y += b->dy; b->y += b->dy;
@ -163,7 +164,7 @@ static void resizeDrawList(void)
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing bullet draw capacity: %d -> %d", drawCapacity, n); SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing bullet draw capacity: %d -> %d", drawCapacity, n);
bulletsToDraw = resize(bulletsToDraw, sizeof(Bullet*) * drawCapacity, sizeof(Bullet*) * n); bulletsToDraw = resize(bulletsToDraw, sizeof(Bullet *) * drawCapacity, sizeof(Bullet *) * n);
drawCapacity = n; drawCapacity = n;
} }
@ -175,7 +176,7 @@ static void checkCollisions(Bullet *b)
candidates = getAllEntsWithin(b->x - (b->w / 2), b->y - (b->h / 2), b->w, b->h, NULL); candidates = getAllEntsWithin(b->x - (b->w / 2), b->y - (b->h / 2), b->w, b->h, NULL);
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (e->flags & EF_TAKES_DAMAGE) if (e->flags & EF_TAKES_DAMAGE)
{ {
@ -203,7 +204,7 @@ static void checkCollisions(Bullet *b)
if (battle.hasSuspicionLevel) if (battle.hasSuspicionLevel)
{ {
if (e->aiFlags & (AIF_AVOIDS_COMBAT|AIF_DEFENSIVE)) if (e->aiFlags & (AIF_AVOIDS_COMBAT | AIF_DEFENSIVE))
{ {
battle.suspicionLevel -= (MAX_SUSPICION_LEVEL * 0.1); battle.suspicionLevel -= (MAX_SUSPICION_LEVEL * 0.1);
} }
@ -315,7 +316,7 @@ void drawBullets(void)
setAtlasColor(255, 255, 255, 255); setAtlasColor(255, 255, 255, 255);
for (i = 0, b = bulletsToDraw[i] ; b != NULL ; b = bulletsToDraw[++i]) for (i = 0, b = bulletsToDraw[i]; b != NULL; b = bulletsToDraw[++i])
{ {
blitRotated(b->texture, b->x - battle.camera.x, b->y - battle.camera.y, b->angle); blitRotated(b->texture, b->x - battle.camera.x, b->y - battle.camera.y, b->angle);
} }
@ -406,7 +407,7 @@ static void selectNewTarget(Bullet *b)
candidates = getAllEntsInRadius(b->x, b->y, SCREEN_HEIGHT, NULL); candidates = getAllEntsInRadius(b->x, b->y, SCREEN_HEIGHT, NULL);
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (e->type == ET_FIGHTER && e->side != b->owner->side && e->health > 0) if (e->type == ET_FIGHTER && e->side != b->owner->side && e->health > 0)
{ {
@ -462,7 +463,7 @@ void fireGuns(Entity *owner)
b = NULL; b = NULL;
for (i = 0 ; i < MAX_FIGHTER_GUNS ; i++) for (i = 0; i < MAX_FIGHTER_GUNS; i++)
{ {
if (owner->guns[i].type != BT_NONE && (owner->guns[i].type == owner->selectedGunType || owner->combinedGuns)) if (owner->guns[i].type != BT_NONE && (owner->guns[i].type == owner->selectedGunType || owner->combinedGuns))
{ {

View File

@ -19,22 +19,23 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "capitalShips.h"
#include "../battle/ai.h"
#include "../battle/debris.h"
#include "../battle/effects.h"
#include "../battle/entities.h"
#include "../battle/fighters.h"
#include "../battle/messageBox.h"
#include "../battle/objectives.h"
#include "../battle/quadtree.h"
#include "../battle/script.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "../system/atlas.h"
#include "../system/io.h"
#include "../system/lookup.h" #include "../system/lookup.h"
#include "../system/sound.h" #include "../system/sound.h"
#include "../system/util.h" #include "../system/util.h"
#include "../battle/ai.h" #include "capitalShips.h"
#include "../battle/fighters.h"
#include "../battle/quadtree.h"
#include "../battle/debris.h"
#include "../battle/messageBox.h"
#include "../battle/script.h"
#include "../battle/effects.h"
#include "../battle/objectives.h"
#include "../system/atlas.h"
#include "../system/io.h"
#include "../battle/entities.h"
#define TURN_SPEED 0.1 #define TURN_SPEED 0.1
#define TURN_THRESHOLD 2 #define TURN_THRESHOLD 2
@ -69,7 +70,7 @@ Entity *spawnCapitalShip(char *name, int x, int y, int side)
capitalShip = NULL; capitalShip = NULL;
for (def = defHead.next ; def != NULL ; def = def->next) for (def = defHead.next; def != NULL; def = def->next)
{ {
if ((strcmp(def->name, name) == 0) || (def->owner != NULL && strcmp(def->owner->name, name) == 0)) if ((strcmp(def->name, name) == 0) || (def->owner != NULL && strcmp(def->owner->name, name) == 0))
{ {
@ -174,7 +175,7 @@ static void findAITarget(void)
self->target = NULL; self->target = NULL;
dist = closest = MAX_TARGET_RANGE; dist = closest = MAX_TARGET_RANGE;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active && e->side != self->side && e->flags & EF_AI_TARGET) if (e->active && e->side != self->side && e->flags & EF_AI_TARGET)
{ {
@ -220,7 +221,7 @@ static int steer(void)
candidates = getAllEntsInRadius(self->x, self->y, 2000, self); candidates = getAllEntsInRadius(self->x, self->y, 2000, self);
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (e->type == ET_CAPITAL_SHIP) if (e->type == ET_CAPITAL_SHIP)
{ {
@ -299,7 +300,7 @@ static void gunDie(void)
playBattleSound(SND_EXPLOSION_1 + rand() % 4, self->x, self->y); playBattleSound(SND_EXPLOSION_1 + rand() % 4, self->x, self->y);
addDebris(self->x, self->y, 3 + rand() % 4); addDebris(self->x, self->y, 3 + rand() % 4);
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e != self && e->health > 0 && e->owner == self->owner && e->type == ET_COMPONENT_GUN) if (e != self && e->health > 0 && e->owner == self->owner && e->type == ET_COMPONENT_GUN)
{ {
@ -336,7 +337,7 @@ static void engineDie(void)
playBattleSound(SND_EXPLOSION_1 + rand() % 4, self->x, self->y); playBattleSound(SND_EXPLOSION_1 + rand() % 4, self->x, self->y);
addDebris(self->x, self->y, 4 + rand() % 9); addDebris(self->x, self->y, 4 + rand() % 9);
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e != self && e->health > 0 && e->owner == self->owner && e->type == ET_COMPONENT_ENGINE) if (e != self && e->health > 0 && e->owner == self->owner && e->type == ET_COMPONENT_ENGINE)
{ {
@ -377,7 +378,7 @@ static void die(void)
addDebris(self->x, self->y, 12); addDebris(self->x, self->y, 12);
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->owner == self) if (e->owner == self)
{ {
@ -410,7 +411,7 @@ static void disable(void)
runScriptFunction("CAP_DISABLED %s", self->owner->name); runScriptFunction("CAP_DISABLED %s", self->owner->name);
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->owner == self->owner || e == self->owner) if (e->owner == self->owner || e == self->owner)
{ {
@ -434,7 +435,7 @@ void loadCapitalShipDefs(void)
filenames = getFileList("data/capitalShips", &count); filenames = getFileList("data/capitalShips", &count);
for (i = 0 ; i < count ; i++) for (i = 0; i < count; i++)
{ {
sprintf(path, "data/capitalShips/%s", filenames[i]); sprintf(path, "data/capitalShips/%s", filenames[i]);
@ -660,7 +661,7 @@ void updateCapitalShipComponentProperties(Entity *parent, long flags)
flags &= ~EF_AI_LEADER; flags &= ~EF_AI_LEADER;
} }
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->owner == parent) if (e->owner == parent)
{ {
@ -729,7 +730,7 @@ void loadCapitalShips(cJSON *node)
flags = flagsToLong(cJSON_GetObjectItem(node, "flags")->valuestring, &addFlags); flags = flagsToLong(cJSON_GetObjectItem(node, "flags")->valuestring, &addFlags);
} }
for (i = 0 ; i < number ; i++) for (i = 0; i < number; i++)
{ {
type = types[rand() % numTypes]; type = types[rand() % numTypes];
@ -774,7 +775,7 @@ void loadCapitalShips(cJSON *node)
node = node->next; node = node->next;
for (i = 0 ; i < numTypes ; i++) for (i = 0; i < numTypes; i++)
{ {
free(types[i]); free(types[i]);
} }

View File

@ -19,12 +19,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "debris.h"
#include "../battle/effects.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "../system/atlas.h" #include "../system/atlas.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/util.h" #include "../system/util.h"
#include "../battle/effects.h" #include "debris.h"
#define INITIAL_DEBRIS_DRAW_CAPACITY 32 #define INITIAL_DEBRIS_DRAW_CAPACITY 32
#define MAX_DEBRIS_TEXTURES 6 #define MAX_DEBRIS_TEXTURES 6
@ -49,8 +50,8 @@ void initDebris(void)
drawCapacity = INITIAL_DEBRIS_DRAW_CAPACITY; drawCapacity = INITIAL_DEBRIS_DRAW_CAPACITY;
debrisToDraw = malloc(sizeof(Bullet*) * drawCapacity); debrisToDraw = malloc(sizeof(Bullet *) * drawCapacity);
memset(debrisToDraw, 0, sizeof(Bullet*) * drawCapacity); memset(debrisToDraw, 0, sizeof(Bullet *) * drawCapacity);
} }
void addDebris(int x, int y, int amount) void addDebris(int x, int y, int amount)
@ -58,7 +59,7 @@ void addDebris(int x, int y, int amount)
int i; int i;
Debris *d; Debris *d;
for (i = 0 ; i < amount ; i++) for (i = 0; i < amount; i++)
{ {
d = malloc(sizeof(Debris)); d = malloc(sizeof(Debris));
memset(d, 0, sizeof(Debris)); memset(d, 0, sizeof(Debris));
@ -82,13 +83,13 @@ void doDebris(void)
int i; int i;
Debris *d, *prev; Debris *d, *prev;
memset(debrisToDraw, 0, sizeof(Debris*) * drawCapacity); memset(debrisToDraw, 0, sizeof(Debris *) * drawCapacity);
prev = &battle.debrisHead; prev = &battle.debrisHead;
i = 0; i = 0;
for (d = battle.debrisHead.next ; d != NULL ; d = d->next) for (d = battle.debrisHead.next; d != NULL; d = d->next)
{ {
d->x += d->dx; d->x += d->dx;
d->y += d->dy; d->y += d->dy;
@ -138,7 +139,7 @@ static void resizeDrawList(void)
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing debris draw capacity: %d -> %d", drawCapacity, n); SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing debris draw capacity: %d -> %d", drawCapacity, n);
debrisToDraw = resize(debrisToDraw, sizeof(Debris*) * drawCapacity, sizeof(Debris*) * n); debrisToDraw = resize(debrisToDraw, sizeof(Debris *) * drawCapacity, sizeof(Debris *) * n);
drawCapacity = n; drawCapacity = n;
} }
@ -162,7 +163,7 @@ void drawDebris(void)
int i; int i;
Debris *d; Debris *d;
for (i = 0, d = debrisToDraw[i] ; d != NULL ; d = debrisToDraw[++i]) for (i = 0, d = debrisToDraw[i]; d != NULL; d = debrisToDraw[++i])
{ {
blitRotated(d->texture, d->x - battle.camera.x, d->y - battle.camera.y, d->angle); blitRotated(d->texture, d->x - battle.camera.x, d->y - battle.camera.y, d->angle);
} }

View File

@ -19,10 +19,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "effects.h"
#include "../system/atlas.h" #include "../system/atlas.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/util.h" #include "../system/util.h"
#include "effects.h"
#define INITIAL_EFFECT_DRAW_CAPACITY 128 #define INITIAL_EFFECT_DRAW_CAPACITY 128
@ -49,8 +50,8 @@ void initEffects(void)
drawCapacity = INITIAL_EFFECT_DRAW_CAPACITY; drawCapacity = INITIAL_EFFECT_DRAW_CAPACITY;
effectsToDraw = malloc(sizeof(Effect*) * drawCapacity); effectsToDraw = malloc(sizeof(Effect *) * drawCapacity);
memset(effectsToDraw, 0, sizeof(Effect*) * drawCapacity); memset(effectsToDraw, 0, sizeof(Effect *) * drawCapacity);
} }
void doEffects(void) void doEffects(void)
@ -61,9 +62,9 @@ void doEffects(void)
i = 0; i = 0;
memset(effectsToDraw, 0, sizeof(Effect*) * drawCapacity); memset(effectsToDraw, 0, sizeof(Effect *) * drawCapacity);
for (e = battle.effectHead.next ; e != NULL ; e = e->next) for (e = battle.effectHead.next; e != NULL; e = e->next)
{ {
e->x += e->dx; e->x += e->dx;
e->y += e->dy; e->y += e->dy;
@ -133,7 +134,7 @@ static void resizeDrawList(void)
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing effect draw capacity: %d -> %d", drawCapacity, n); SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing effect draw capacity: %d -> %d", drawCapacity, n);
effectsToDraw = resize(effectsToDraw, sizeof(Effect*) * drawCapacity, sizeof(Effect*) * n); effectsToDraw = resize(effectsToDraw, sizeof(Effect *) * drawCapacity, sizeof(Effect *) * n);
drawCapacity = n; drawCapacity = n;
} }
@ -145,7 +146,7 @@ void drawEffects(void)
SDL_SetRenderDrawBlendMode(app.renderer, SDL_BLENDMODE_BLEND); SDL_SetRenderDrawBlendMode(app.renderer, SDL_BLENDMODE_BLEND);
for (i = 0, e = effectsToDraw[i] ; e != NULL ; e = effectsToDraw[++i]) for (i = 0, e = effectsToDraw[i]; e != NULL; e = effectsToDraw[++i])
{ {
SDL_SetRenderDrawColor(app.renderer, e->r, e->g, e->b, e->a); SDL_SetRenderDrawColor(app.renderer, e->r, e->g, e->b, e->a);
@ -203,7 +204,7 @@ void addBulletHitEffect(int x, int y, int r, int g, int b)
Effect *e; Effect *e;
int i; int i;
for (i = 0 ; i < 4 ; i++) for (i = 0; i < 4; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));
memset(e, 0, sizeof(Effect)); memset(e, 0, sizeof(Effect));
@ -284,7 +285,7 @@ void addSmallExplosion(void)
int i; int i;
Effect *e; Effect *e;
for (i = 0 ; i < 32 ; i++) for (i = 0; i < 32; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));
memset(e, 0, sizeof(Effect)); memset(e, 0, sizeof(Effect));
@ -312,7 +313,7 @@ void addSmallExplosion(void)
e->y -= e->size / 2; e->y -= e->size / 2;
} }
for (i = 0 ; i < 96 ; i++) for (i = 0; i < 96; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));
memset(e, 0, sizeof(Effect)); memset(e, 0, sizeof(Effect));
@ -339,7 +340,7 @@ void addMineExplosion(void)
int i; int i;
Effect *e; Effect *e;
for (i = 0 ; i < 64 ; i++) for (i = 0; i < 64; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));
memset(e, 0, sizeof(Effect)); memset(e, 0, sizeof(Effect));
@ -389,7 +390,7 @@ void addLargeExplosion(void)
int i; int i;
Effect *e; Effect *e;
for (i = 0 ; i < 64 ; i++) for (i = 0; i < 64; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));
memset(e, 0, sizeof(Effect)); memset(e, 0, sizeof(Effect));
@ -443,7 +444,7 @@ void addMissileExplosion(Bullet *b)
int i; int i;
Effect *e; Effect *e;
for (i = 0 ; i < 8 ; i++) for (i = 0; i < 8; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));
memset(e, 0, sizeof(Effect)); memset(e, 0, sizeof(Effect));
@ -471,7 +472,7 @@ void addMissileExplosion(Bullet *b)
e->y -= e->size / 2; e->y -= e->size / 2;
} }
for (i = 0 ; i < 24 ; i++) for (i = 0; i < 24; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));
memset(e, 0, sizeof(Effect)); memset(e, 0, sizeof(Effect));
@ -598,7 +599,7 @@ void addShieldSplinterEffect(Entity *ent)
int i; int i;
Effect *e; Effect *e;
for (i = 0 ; i < 48 ; i++) for (i = 0; i < 48; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));
memset(e, 0, sizeof(Effect)); memset(e, 0, sizeof(Effect));
@ -625,7 +626,7 @@ void addECMEffect(Entity *ent)
int i; int i;
Effect *e; Effect *e;
for (i = 0 ; i < 3 ; i++) for (i = 0; i < 3; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));

View File

@ -19,16 +19,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "entities.h"
#include "../system/lookup.h"
#include "../battle/capitalShips.h" #include "../battle/capitalShips.h"
#include "../battle/effects.h"
#include "../battle/fighters.h" #include "../battle/fighters.h"
#include "../battle/quadtree.h" #include "../battle/quadtree.h"
#include "../battle/rope.h" #include "../battle/rope.h"
#include "../system/atlas.h"
#include "../game/trophies.h" #include "../game/trophies.h"
#include "../battle/effects.h" #include "../system/atlas.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/lookup.h"
#include "entities.h"
#define DISABLED_GLOW_MAX 255 #define DISABLED_GLOW_MAX 255
#define DISABLED_GLOW_MIN 128 #define DISABLED_GLOW_MIN 128
@ -95,7 +96,7 @@ void doEntities(void)
player->shield = player->maxShield; player->shield = player->maxShield;
} }
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
removeFromQuadtree(e, &battle.quadtree); removeFromQuadtree(e, &battle.quadtree);
@ -198,7 +199,7 @@ void doEntities(void)
if (e->killedBy == player && battle.hasSuspicionLevel) if (e->killedBy == player && battle.hasSuspicionLevel)
{ {
if (e->aiFlags & (AIF_AVOIDS_COMBAT|AIF_DEFENSIVE)) if (e->aiFlags & (AIF_AVOIDS_COMBAT | AIF_DEFENSIVE))
{ {
battle.suspicionLevel -= (MAX_SUSPICION_LEVEL * 0.5); battle.suspicionLevel -= (MAX_SUSPICION_LEVEL * 0.5);
} }
@ -372,7 +373,7 @@ static void alignComponents(void)
float x, y; float x, y;
float c, s; float c, s;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (isComponent(e)) if (isComponent(e))
{ {
@ -413,11 +414,13 @@ void drawEntities(void)
candidates = getAllEntsWithin(battle.camera.x, battle.camera.y, app.winWidth, app.winHeight, NULL); candidates = getAllEntsWithin(battle.camera.x, battle.camera.y, app.winWidth, app.winHeight, NULL);
/* counting entities to draw */ /* counting entities to draw */
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) {}; for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{
};
qsort(candidates, i, sizeof(Entity*), drawComparator); qsort(candidates, i, sizeof(Entity *), drawComparator);
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
self = e; self = e;
@ -551,7 +554,7 @@ void activateEntities(char *names)
while (name) while (name)
{ {
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (strcmp(e->name, name) == 0) if (strcmp(e->name, name) == 0)
{ {
@ -579,7 +582,7 @@ void activateEntityGroups(char *groupNames)
while (groupName) while (groupName)
{ {
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (strcmp(e->groupName, groupName) == 0) if (strcmp(e->groupName, groupName) == 0)
{ {
@ -608,7 +611,7 @@ static void notifyNewArrivals(void)
{ {
Entity *e; Entity *e;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active && (e->type == ET_FIGHTER || e->type == ET_CAPITAL_SHIP)) if (e->active && (e->type == ET_FIGHTER || e->type == ET_CAPITAL_SHIP))
{ {
@ -621,7 +624,7 @@ static void activateEpicFighters(int side)
{ {
Entity *e; Entity *e;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (!e->active && e->type == ET_FIGHTER && !(e->flags & EF_NO_EPIC) && ((side == SIDE_ALLIES && e->side == SIDE_ALLIES) || (side != SIDE_ALLIES && e->side != SIDE_ALLIES))) if (!e->active && e->type == ET_FIGHTER && !(e->flags & EF_NO_EPIC) && ((side == SIDE_ALLIES && e->side == SIDE_ALLIES) || (side != SIDE_ALLIES && e->side != SIDE_ALLIES)))
{ {
@ -646,7 +649,7 @@ void countNumEnemies(void)
{ {
Entity *e; Entity *e;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->side != SIDE_ALLIES && (e->type == ET_FIGHTER || e->type == ET_CAPITAL_SHIP) && (!(e->flags & EF_NO_THREAT))) if (e->side != SIDE_ALLIES && (e->type == ET_FIGHTER || e->type == ET_CAPITAL_SHIP) && (!(e->flags & EF_NO_THREAT)))
{ {
@ -661,7 +664,7 @@ void addAllToQuadtree(void)
{ {
Entity *e; Entity *e;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active) if (e->active)
{ {
@ -672,8 +675,8 @@ void addAllToQuadtree(void)
static int drawComparator(const void *a, const void *b) static int drawComparator(const void *a, const void *b)
{ {
Entity *e1 = *((Entity**)a); Entity *e1 = *((Entity **)a);
Entity *e2 = *((Entity**)b); Entity *e2 = *((Entity **)b);
return e2->type - e1->type; return e2->type - e1->type;
} }
@ -682,7 +685,7 @@ void killEntity(char *name)
{ {
Entity *e; Entity *e;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (strcmp(e->name, name) == 0) if (strcmp(e->name, name) == 0)
{ {
@ -703,7 +706,7 @@ void updateEntitySide(char *sideStr, char *name)
side = lookup(sideStr); side = lookup(sideStr);
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (strcmp(e->name, name) == 0) if (strcmp(e->name, name) == 0)
{ {
@ -721,7 +724,7 @@ void awardPandoranCraftTrophy(void)
{ {
Entity *e; Entity *e;
for (e = deadHead.next ; e != NULL ; e = e->next) for (e = deadHead.next; e != NULL; e = e->next)
{ {
if (e->killedBy == player && e->side == SIDE_PANDORAN) if (e->killedBy == player && e->side == SIDE_PANDORAN)
{ {

View File

@ -19,24 +19,25 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "fighters.h"
#include "../json/cJSON.h"
#include "../system/lookup.h"
#include "../system/atlas.h"
#include "../system/util.h"
#include "../battle/ai.h" #include "../battle/ai.h"
#include "../battle/quadtree.h"
#include "../battle/debris.h" #include "../battle/debris.h"
#include "../battle/rope.h"
#include "../galaxy/mission.h"
#include "../battle/hud.h"
#include "../battle/objectives.h"
#include "../battle/script.h"
#include "../battle/effects.h" #include "../battle/effects.h"
#include "../battle/items.h"
#include "../system/io.h"
#include "../system/sound.h"
#include "../battle/entities.h" #include "../battle/entities.h"
#include "../battle/hud.h"
#include "../battle/items.h"
#include "../battle/objectives.h"
#include "../battle/quadtree.h"
#include "../battle/rope.h"
#include "../battle/script.h"
#include "../galaxy/mission.h"
#include "../json/cJSON.h"
#include "../system/atlas.h"
#include "../system/io.h"
#include "../system/lookup.h"
#include "../system/sound.h"
#include "../system/util.h"
#include "fighters.h"
extern Battle battle; extern Battle battle;
extern Colors colors; extern Colors colors;
@ -175,7 +176,7 @@ static void randomizeDartGuns(Entity *dart)
dart->guns[0].type = BT_PLASMA; dart->guns[0].type = BT_PLASMA;
dart->guns[0].x = dart->guns[0].y = 0; dart->guns[0].x = dart->guns[0].y = 0;
for (i = 1 ; i < MAX_FIGHTER_GUNS ; i++) for (i = 1; i < MAX_FIGHTER_GUNS; i++)
{ {
if (dart->guns[i].type) if (dart->guns[i].type)
{ {
@ -421,7 +422,7 @@ static void separate(void)
candidates = getAllEntsInRadius(self->x, self->y, self->separationRadius, self); candidates = getAllEntsInRadius(self->x, self->y, self->separationRadius, self);
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if ((e->flags & EF_TAKES_DAMAGE) && (!(e->flags & EF_NON_SOLID))) if ((e->flags & EF_TAKES_DAMAGE) && (!(e->flags & EF_NON_SOLID)))
{ {
@ -706,7 +707,7 @@ void retreatEnemies(void)
{ {
Entity *e; Entity *e;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->type == ET_FIGHTER && e->side != player->side) if (e->type == ET_FIGHTER && e->side != player->side)
{ {
@ -731,7 +732,7 @@ void retreatAllies(void)
{ {
Entity *e; Entity *e;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->type == ET_FIGHTER && e->side == player->side) if (e->type == ET_FIGHTER && e->side == player->side)
{ {
@ -758,7 +759,7 @@ static Entity *getFighterDef(char *name)
{ {
Entity *e; Entity *e;
for (e = defHead.next ; e != NULL ; e = e->next) for (e = defHead.next; e != NULL; e = e->next)
{ {
if (strcmp(e->name, name) == 0) if (strcmp(e->name, name) == 0)
{ {
@ -777,7 +778,7 @@ Entity **getDBFighters(int *num)
i = *num = 0; i = *num = 0;
for (e = defHead.next ; e != NULL ; e = e->next) for (e = defHead.next; e != NULL; e = e->next)
{ {
if (e->description != NULL) if (e->description != NULL)
{ {
@ -785,9 +786,9 @@ Entity **getDBFighters(int *num)
} }
} }
dbFighters = malloc(sizeof(Entity*) * *num); dbFighters = malloc(sizeof(Entity *) * *num);
for (e = defHead.next ; e != NULL ; e = e->next) for (e = defHead.next; e != NULL; e = e->next)
{ {
if (e->description != NULL) if (e->description != NULL)
{ {
@ -818,7 +819,7 @@ static void loadFighterDefList(char *dir)
filenames = getFileList(dir, &count); filenames = getFileList(dir, &count);
for (i = 0 ; i < count ; i++) for (i = 0; i < count; i++)
{ {
sprintf(path, "%s/%s", dir, filenames[i]); sprintf(path, "%s/%s", dir, filenames[i]);
@ -877,7 +878,7 @@ static void loadFighterDef(char *filename)
{ {
i = 0; i = 0;
for (node = cJSON_GetObjectItem(root, "guns")->child ; node != NULL ; node = node->next) for (node = cJSON_GetObjectItem(root, "guns")->child; node != NULL; node = node->next)
{ {
e->guns[i].type = lookup(cJSON_GetObjectItem(node, "type")->valuestring); e->guns[i].type = lookup(cJSON_GetObjectItem(node, "type")->valuestring);
e->guns[i].x = cJSON_GetObjectItem(node, "x")->valueint; e->guns[i].x = cJSON_GetObjectItem(node, "x")->valueint;
@ -939,7 +940,7 @@ static void addFighterStat(char *key)
tail = &game.fighterStatHead; tail = &game.fighterStatHead;
for (t = game.fighterStatHead.next ; t != NULL ; t = t->next) for (t = game.fighterStatHead.next; t != NULL; t = t->next)
{ {
if (strcmp(t->key, key) == 0) if (strcmp(t->key, key) == 0)
{ {
@ -963,7 +964,7 @@ static void incFighterStat(char *key)
{ {
Tuple *t; Tuple *t;
for (t = game.fighterStatHead.next ; t != NULL ; t = t->next) for (t = game.fighterStatHead.next; t != NULL; t = t->next)
{ {
if (strcmp(t->key, key) == 0) if (strcmp(t->key, key) == 0)
{ {
@ -1015,7 +1016,7 @@ void loadFighters(cJSON *node)
aiFlags = flagsToLong(cJSON_GetObjectItem(node, "aiFlags")->valuestring, &addAIFlags); aiFlags = flagsToLong(cJSON_GetObjectItem(node, "aiFlags")->valuestring, &addAIFlags);
} }
for (i = 0 ; i < number ; i++) for (i = 0; i < number; i++)
{ {
type = types[rand() % numTypes]; type = types[rand() % numTypes];
@ -1083,7 +1084,7 @@ void loadFighters(cJSON *node)
node = node->next; node = node->next;
for (i = 0 ; i < numTypes ; i++) for (i = 0; i < numTypes; i++)
{ {
free(types[i]); free(types[i]);
} }

View File

@ -19,14 +19,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "hud.h"
#include "../system/atlas.h"
#include "../system/util.h"
#include "../battle/player.h"
#include "../system/text.h"
#include "../battle/radar.h"
#include "../system/draw.h"
#include "../battle/jumpgate.h" #include "../battle/jumpgate.h"
#include "../battle/player.h"
#include "../battle/radar.h"
#include "../system/atlas.h"
#include "../system/draw.h"
#include "../system/text.h"
#include "../system/util.h"
#include "hud.h"
#define MAX_HUD_MESSAGES 6 #define MAX_HUD_MESSAGES 6
@ -129,7 +130,7 @@ void doHud(void)
prev = &hudMessageHead; prev = &hudMessageHead;
for (hudMessage = hudMessageHead.next ; hudMessage != NULL ; hudMessage = hudMessage->next) for (hudMessage = hudMessageHead.next; hudMessage != NULL; hudMessage = hudMessage->next)
{ {
hudMessage->life--; hudMessage->life--;
@ -348,7 +349,7 @@ static void drawWeaponInfo(void)
{ {
y = 70; y = 70;
for (i = 0 ; i < BT_MAX ; i++) for (i = 0; i < BT_MAX; i++)
{ {
if (playerHasGun(i)) if (playerHasGun(i))
{ {
@ -617,7 +618,7 @@ static void drawHudMessages(void)
HudMessage *hudMessage; HudMessage *hudMessage;
int y = app.winHeight - 25; int y = app.winHeight - 25;
for (hudMessage = hudMessageHead.next ; hudMessage != NULL ; hudMessage = hudMessage->next) for (hudMessage = hudMessageHead.next; hudMessage != NULL; hudMessage = hudMessage->next)
{ {
drawText(10, y, 14, TA_LEFT, hudMessage->color, hudMessage->message); drawText(10, y, 14, TA_LEFT, hudMessage->color, hudMessage->message);

View File

@ -19,17 +19,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "items.h"
#include "../battle/entities.h"
#include "../battle/hud.h"
#include "../battle/objectives.h"
#include "../battle/quadtree.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "../system/atlas.h"
#include "../system/io.h"
#include "../system/lookup.h" #include "../system/lookup.h"
#include "../system/sound.h" #include "../system/sound.h"
#include "../system/util.h" #include "../system/util.h"
#include "../battle/quadtree.h" #include "items.h"
#include "../battle/hud.h"
#include "../battle/objectives.h"
#include "../system/io.h"
#include "../system/atlas.h"
#include "../battle/entities.h"
extern Battle battle; extern Battle battle;
extern Colors colors; extern Colors colors;
@ -54,7 +55,7 @@ void loadItemDefs(void)
memset(&defHead, 0, sizeof(Entity)); memset(&defHead, 0, sizeof(Entity));
defTail = &defHead; defTail = &defHead;
for (node = root->child ; node != NULL ; node = node->next) for (node = root->child; node != NULL; node = node->next)
{ {
e = malloc(sizeof(Entity)); e = malloc(sizeof(Entity));
memset(e, 0, sizeof(Entity)); memset(e, 0, sizeof(Entity));
@ -92,7 +93,7 @@ Entity *spawnItem(char *name)
} }
else else
{ {
for (e = defHead.next ; e != NULL ; e = e->next) for (e = defHead.next; e != NULL; e = e->next)
{ {
if (!def || rand() % 2) if (!def || rand() % 2)
{ {
@ -129,7 +130,7 @@ static Entity *getItemDef(char *defName)
{ {
Entity *e; Entity *e;
for (e = defHead.next ; e != NULL ; e = e->next) for (e = defHead.next; e != NULL; e = e->next)
{ {
if (strcmp(e->defName, defName) == 0) if (strcmp(e->defName, defName) == 0)
{ {
@ -148,7 +149,7 @@ static void action(void)
candidates = getAllEntsInRadius(self->x, self->y, MAX(self->w, self->h), self); candidates = getAllEntsInRadius(self->x, self->y, MAX(self->w, self->h), self);
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (e->alive == ALIVE_ALIVE && (e->flags & EF_COLLECTS_ITEMS) && collision(self->x - (self->w / 2), self->y - (self->h / 2), self->w, self->h, e->x - (e->w / 2), e->y - (e->h / 2), e->w, e->h)) if (e->alive == ALIVE_ALIVE && (e->flags & EF_COLLECTS_ITEMS) && collision(self->x - (self->w / 2), self->y - (self->h / 2), self->w, self->h, e->x - (e->w / 2), e->y - (e->h / 2), e->w, e->h))
{ {
@ -206,7 +207,7 @@ void loadItems(cJSON *node)
flags = flagsToLong(cJSON_GetObjectItem(node, "flags")->valuestring, &addFlags); flags = flagsToLong(cJSON_GetObjectItem(node, "flags")->valuestring, &addFlags);
} }
for (i = 0 ; i < number ; i++) for (i = 0; i < number; i++)
{ {
e = spawnItem(type); e = spawnItem(type);

View File

@ -19,17 +19,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "jumpgate.h"
#include "../system/draw.h"
#include "../system/util.h"
#include "../battle/quadtree.h"
#include "../battle/debris.h" #include "../battle/debris.h"
#include "../battle/objectives.h"
#include "../battle/script.h"
#include "../battle/effects.h" #include "../battle/effects.h"
#include "../system/atlas.h"
#include "../system/sound.h"
#include "../battle/entities.h" #include "../battle/entities.h"
#include "../battle/objectives.h"
#include "../battle/quadtree.h"
#include "../battle/script.h"
#include "../system/atlas.h"
#include "../system/draw.h"
#include "../system/sound.h"
#include "../system/util.h"
#include "jumpgate.h"
#define ESCAPE_DISTANCE 256 #define ESCAPE_DISTANCE 256
@ -63,7 +64,7 @@ Entity *spawnJumpgate(int side, long flags)
jumpgate->action = think; jumpgate->action = think;
jumpgate->draw = draw; jumpgate->draw = draw;
jumpgate->side = side; jumpgate->side = side;
jumpgate->flags = EF_NO_MT_BOX+EF_IMMORTAL+EF_AI_IGNORE+EF_NON_SOLID+EF_NO_HEALTH_BAR; jumpgate->flags = EF_NO_MT_BOX + EF_IMMORTAL + EF_AI_IGNORE + EF_NON_SOLID + EF_NO_HEALTH_BAR;
if (flags != -1 && flags & EF_DISABLED) if (flags != -1 && flags & EF_DISABLED)
{ {
@ -91,7 +92,7 @@ static void addNodes(Entity *jumpgate, long flags)
nodeTexture = getAtlasImage("gfx/entities/jumpgateNode.png"); nodeTexture = getAtlasImage("gfx/entities/jumpgateNode.png");
for (i = 0 ; i < 360 ; i += 36) for (i = 0; i < 360; i += 36)
{ {
node = spawnEntity(); node = spawnEntity();
STRNCPY(node->name, _("Jumpgate System Node"), MAX_NAME_LENGTH); STRNCPY(node->name, _("Jumpgate System Node"), MAX_NAME_LENGTH);
@ -102,7 +103,7 @@ static void addNodes(Entity *jumpgate, long flags)
node->owner = jumpgate; node->owner = jumpgate;
node->side = jumpgate->side; node->side = jumpgate->side;
node->texture = nodeTexture; node->texture = nodeTexture;
node->flags = EF_TAKES_DAMAGE+EF_AI_IGNORE; node->flags = EF_TAKES_DAMAGE + EF_AI_IGNORE;
node->die = nodeDie; node->die = nodeDie;
node->w = node->texture->rect.w; node->w = node->texture->rect.w;
node->h = node->texture->rect.h; node->h = node->texture->rect.h;
@ -152,7 +153,7 @@ void activateJumpgate(int activate)
if (battle.jumpgate && battle.jumpgate->health > 1) if (battle.jumpgate && battle.jumpgate->health > 1)
{ {
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e == battle.jumpgate || e->owner == battle.jumpgate) if (e == battle.jumpgate || e->owner == battle.jumpgate)
{ {
@ -200,7 +201,7 @@ static void handleFleeingEntities(void)
candidates = getAllEntsInRadius(self->x, self->y, ESCAPE_DISTANCE * 2, self); candidates = getAllEntsInRadius(self->x, self->y, ESCAPE_DISTANCE * 2, self);
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (e->health > 0 && (e->flags & EF_RETREATING) && getDistance(self->x, self->y, e->x, e->y) <= ESCAPE_DISTANCE) if (e->health > 0 && (e->flags & EF_RETREATING) && getDistance(self->x, self->y, e->x, e->y) <= ESCAPE_DISTANCE)
{ {
@ -220,7 +221,7 @@ static void addEscapeEffect(Entity *ent)
n = ent->w * ent->h; n = ent->w * ent->h;
for (i = 0 ; i < n ; i++) for (i = 0; i < n; i++)
{ {
e = malloc(sizeof(Effect)); e = malloc(sizeof(Effect));
memset(e, 0, sizeof(Effect)); memset(e, 0, sizeof(Effect));

View File

@ -19,11 +19,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "locations.h"
#include "../battle/script.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/util.h" #include "../system/util.h"
#include "../battle/script.h" #include "locations.h"
extern Battle battle; extern Battle battle;
extern Entity *player; extern Entity *player;
@ -34,7 +35,7 @@ void doLocations(void)
prev = &battle.locationHead; prev = &battle.locationHead;
for (l = battle.locationHead.next ; l != NULL ; l = l->next) for (l = battle.locationHead.next; l != NULL; l = l->next)
{ {
if (l->active && getDistance(player->x, player->y, l->x, l->y) <= l->size) if (l->active && getDistance(player->x, player->y, l->x, l->y) <= l->size)
{ {
@ -53,7 +54,7 @@ void drawLocations(void)
{ {
Location *l; Location *l;
for (l = battle.locationHead.next ; l != NULL ; l = l->next) for (l = battle.locationHead.next; l != NULL; l = l->next)
{ {
if (l->active) if (l->active)
{ {
@ -71,7 +72,7 @@ void activateLocations(char *locations)
while (token) while (token)
{ {
for (l = battle.locationHead.next ; l != NULL ; l = l->next) for (l = battle.locationHead.next; l != NULL; l = l->next)
{ {
if (strcmp(token, l->name) == 0) if (strcmp(token, l->name) == 0)
{ {
@ -91,7 +92,7 @@ void createChristabelLocation(void)
Location *l; Location *l;
Entity *e; Entity *e;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (strcmp(e->name, "Christabel") == 0) if (strcmp(e->name, "Christabel") == 0)
{ {

View File

@ -19,9 +19,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "messageBox.h"
#include "../system/text.h"
#include "../system/sound.h" #include "../system/sound.h"
#include "../system/text.h"
#include "messageBox.h"
#define MSG_BOX_TEXT_WIDTH 600 #define MSG_BOX_TEXT_WIDTH 600
@ -191,7 +192,7 @@ static void nextMessage(void)
playSound(SND_RADIO); playSound(SND_RADIO);
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active && e != player) if (e->active && e != player)
{ {

View File

@ -19,17 +19,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "mine.h"
#include "../battle/effects.h"
#include "../battle/entities.h"
#include "../battle/fighters.h"
#include "../battle/objectives.h"
#include "../battle/quadtree.h"
#include "../battle/script.h"
#include "../game/trophies.h"
#include "../system/atlas.h"
#include "../system/sound.h" #include "../system/sound.h"
#include "../system/util.h" #include "../system/util.h"
#include "../battle/fighters.h" #include "mine.h"
#include "../battle/quadtree.h"
#include "../game/trophies.h"
#include "../battle/objectives.h"
#include "../battle/script.h"
#include "../battle/effects.h"
#include "../system/atlas.h"
#include "../battle/entities.h"
#define DAMAGE_RANGE 250 #define DAMAGE_RANGE 250
#define SYSTEM_POWER 50 #define SYSTEM_POWER 50
@ -68,7 +69,7 @@ Entity *spawnMine(int type)
mine->texture = (type == ET_MINE) ? mineNormal : shadowMine; mine->texture = (type == ET_MINE) ? mineNormal : shadowMine;
mine->action = think; mine->action = think;
mine->die = die; mine->die = die;
mine->flags = EF_TAKES_DAMAGE+EF_NO_PLAYER_TARGET+EF_SHORT_RADAR_RANGE+EF_NON_SOLID+EF_NO_HEALTH_BAR; mine->flags = EF_TAKES_DAMAGE + EF_NO_PLAYER_TARGET + EF_SHORT_RADAR_RANGE + EF_NON_SOLID + EF_NO_HEALTH_BAR;
if (type == ET_SHADOW_MINE) if (type == ET_SHADOW_MINE)
{ {
@ -121,7 +122,7 @@ static void lookForFighters(void)
candidates = getAllEntsInRadius(self->x, self->y, DAMAGE_RANGE, self); candidates = getAllEntsInRadius(self->x, self->y, DAMAGE_RANGE, self);
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (e->side != self->side && e->health > 0 && e->type == ET_FIGHTER && getDistance(self->x, self->y, e->x, e->y) <= TRIGGER_RANGE) if (e->side != self->side && e->health > 0 && e->type == ET_FIGHTER && getDistance(self->x, self->y, e->x, e->y) <= TRIGGER_RANGE)
{ {
@ -223,7 +224,7 @@ static void doSplashDamage(void)
kills = 0; kills = 0;
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (e->health > 0 && (e->type == ET_FIGHTER || e->type == ET_MINE) && !(e->flags & EF_IMMORTAL)) if (e->health > 0 && (e->type == ET_FIGHTER || e->type == ET_MINE) && !(e->flags & EF_IMMORTAL))
{ {

View File

@ -19,13 +19,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "missionInfo.h"
#include "../system/draw.h"
#include "../system/util.h"
#include "../challenges/challenges.h" #include "../challenges/challenges.h"
#include "../system/widgets.h"
#include "../system/text.h"
#include "../system/atlas.h" #include "../system/atlas.h"
#include "../system/draw.h"
#include "../system/text.h"
#include "../system/util.h"
#include "../system/widgets.h"
#include "missionInfo.h"
extern App app; extern App app;
extern Battle battle; extern Battle battle;
@ -145,7 +146,7 @@ static void drawObjectives(void)
y += 10; y += 10;
for (o = battle.objectiveHead.next ; o != NULL ; o = o->next) for (o = battle.objectiveHead.next; o != NULL; o = o->next)
{ {
if (o->active) if (o->active)
{ {
@ -199,14 +200,14 @@ static void drawChallenges(void)
if (battle.status == MS_START && game.currentMission->challengeData.timeLimit) if (battle.status == MS_START && game.currentMission->challengeData.timeLimit)
{ {
y+= 50; y += 50;
drawText(UI_WIDTH / 2, y, 20, TA_CENTER, colors.white, TIME_LIMIT_TEXT, timeToString(game.currentMission->challengeData.timeLimit, 0)); drawText(UI_WIDTH / 2, y, 20, TA_CENTER, colors.white, TIME_LIMIT_TEXT, timeToString(game.currentMission->challengeData.timeLimit, 0));
} }
y += 25; y += 25;
for (i = 0 ; i < MAX_CHALLENGES ; i++) for (i = 0; i < MAX_CHALLENGES; i++)
{ {
c = game.currentMission->challengeData.challenges[i]; c = game.currentMission->challengeData.challenges[i];
@ -224,7 +225,7 @@ static void drawChallenges(void)
challengeStatus = _("Complete"); challengeStatus = _("Complete");
} }
else if (battle.status == MS_COMPLETE ||battle.status == MS_FAILED) else if (battle.status == MS_COMPLETE || battle.status == MS_FAILED)
{ {
color = colors.red; color = colors.red;

View File

@ -19,14 +19,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "objectives.h"
#include "../json/cJSON.h"
#include "../system/lookup.h"
#include "../system/util.h"
#include "../system/sound.h"
#include "../galaxy/mission.h"
#include "../battle/hud.h" #include "../battle/hud.h"
#include "../battle/script.h" #include "../battle/script.h"
#include "../galaxy/mission.h"
#include "../json/cJSON.h"
#include "../system/lookup.h"
#include "../system/sound.h"
#include "../system/util.h"
#include "objectives.h"
extern Battle battle; extern Battle battle;
extern Colors colors; extern Colors colors;
@ -43,7 +44,7 @@ void doObjectives(void)
objectiveFailed = 0; objectiveFailed = 0;
hasHidden = 0; hasHidden = 0;
for (o = battle.objectiveHead.next ; o != NULL ; o = o->next) for (o = battle.objectiveHead.next; o != NULL; o = o->next)
{ {
if (o->active) if (o->active)
{ {
@ -124,7 +125,7 @@ void updateObjective(char *name, int type)
hasHidden = 0; hasHidden = 0;
for (o = battle.objectiveHead.next ; o != NULL ; o = o->next) for (o = battle.objectiveHead.next; o != NULL; o = o->next)
{ {
if (o->active && o->status != OS_COMPLETE) if (o->active && o->status != OS_COMPLETE)
{ {
@ -178,7 +179,7 @@ void adjustObjectiveTargetValue(char *name, int type, int amount)
{ {
Objective *o; Objective *o;
for (o = battle.objectiveHead.next ; o != NULL ; o = o->next) for (o = battle.objectiveHead.next; o != NULL; o = o->next)
{ {
if (o->active && !o->isCondition && o->targetType == type && o->currentValue < o->targetValue && strcmp(o->targetName, name) == 0) if (o->active && !o->isCondition && o->targetType == type && o->currentValue < o->targetValue && strcmp(o->targetName, name) == 0)
{ {
@ -203,7 +204,7 @@ void updateCondition(char *name, int type)
if (strlen(name)) if (strlen(name))
{ {
for (o = battle.objectiveHead.next ; o != NULL ; o = o->next) for (o = battle.objectiveHead.next; o != NULL; o = o->next)
{ {
if (o->active && o->isCondition && o->targetType == type && o->currentValue < o->targetValue && strcmp(o->targetName, name) == 0) if (o->active && o->isCondition && o->targetType == type && o->currentValue < o->targetValue && strcmp(o->targetName, name) == 0)
{ {
@ -228,7 +229,7 @@ void completeAllObjectives(void)
{ {
Objective *o; Objective *o;
for (o = battle.objectiveHead.next ; o != NULL ; o = o->next) for (o = battle.objectiveHead.next; o != NULL; o = o->next)
{ {
o->status = OS_COMPLETE; o->status = OS_COMPLETE;
} }
@ -238,7 +239,7 @@ void completeConditions(void)
{ {
Objective *o; Objective *o;
for (o = battle.objectiveHead.next ; o != NULL ; o = o->next) for (o = battle.objectiveHead.next; o != NULL; o = o->next)
{ {
if (o->isCondition) if (o->isCondition)
{ {
@ -253,7 +254,7 @@ void failIncompleteObjectives(void)
{ {
Objective *o; Objective *o;
for (o = battle.objectiveHead.next ; o != NULL ; o = o->next) for (o = battle.objectiveHead.next; o != NULL; o = o->next)
{ {
if (o->status != OS_COMPLETE) if (o->status != OS_COMPLETE)
{ {
@ -274,7 +275,7 @@ void activateObjectives(char *objectives)
while (token) while (token)
{ {
for (o = battle.objectiveHead.next ; o != NULL ; o = o->next) for (o = battle.objectiveHead.next; o != NULL; o = o->next)
{ {
if (strcmp(token, o->id) == 0) if (strcmp(token, o->id) == 0)
{ {

View File

@ -19,19 +19,20 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "player.h"
#include "../json/cJSON.h"
#include "../system/lookup.h"
#include "../system/util.h"
#include "../system/controls.h"
#include "../battle/fighters.h"
#include "../system/sound.h"
#include "../galaxy/mission.h"
#include "../game/trophies.h"
#include "../battle/hud.h"
#include "../battle/objectives.h"
#include "../battle/bullets.h" #include "../battle/bullets.h"
#include "../battle/effects.h" #include "../battle/effects.h"
#include "../battle/fighters.h"
#include "../battle/hud.h"
#include "../battle/objectives.h"
#include "../galaxy/mission.h"
#include "../game/trophies.h"
#include "../json/cJSON.h"
#include "../system/controls.h"
#include "../system/lookup.h"
#include "../system/sound.h"
#include "../system/util.h"
#include "player.h"
#define MAX_SELECTABLE_PLAYERS 8 #define MAX_SELECTABLE_PLAYERS 8
#define MAX_SELECTABLE_TARGETS 8 #define MAX_SELECTABLE_TARGETS 8
@ -81,7 +82,7 @@ void initPlayer(void)
if (!player->combinedGuns) if (!player->combinedGuns)
{ {
for (i = 0 ; i < MAX_FIGHTER_GUNS ; i++) for (i = 0; i < MAX_FIGHTER_GUNS; i++)
{ {
n = player->guns[i].type; n = player->guns[i].type;
@ -129,7 +130,7 @@ static void setPilotName(void)
pos = -1; pos = -1;
for (i = 0 ; i < strlen(game.currentMission->pilot) ; i++) for (i = 0; i < strlen(game.currentMission->pilot); i++)
{ {
if (game.currentMission->pilot[i] == ' ') if (game.currentMission->pilot[i] == ' ')
{ {
@ -465,13 +466,13 @@ static void initPlayerSelect(void)
{ {
Entity *e; Entity *e;
memset(&availablePlayerUnits, 0, sizeof(Entity*) * MAX_SELECTABLE_PLAYERS); memset(&availablePlayerUnits, 0, sizeof(Entity *) * MAX_SELECTABLE_PLAYERS);
selectedPlayerIndex = 0; selectedPlayerIndex = 0;
if (battle.epicLives == 0 || (battle.epicLives > 0 && --battle.epicLives > 0)) if (battle.epicLives == 0 || (battle.epicLives > 0 && --battle.epicLives > 0))
{ {
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active && e->type == ET_FIGHTER && e->health > 0 && e->side == SIDE_ALLIES && selectedPlayerIndex < MAX_SELECTABLE_PLAYERS) if (e->active && e->type == ET_FIGHTER && e->health > 0 && e->side == SIDE_ALLIES && selectedPlayerIndex < MAX_SELECTABLE_PLAYERS)
{ {
@ -536,8 +537,7 @@ static void selectNewPlayer(int dir)
selectedPlayerIndex = mod(selectedPlayerIndex, MAX_SELECTABLE_PLAYERS); selectedPlayerIndex = mod(selectedPlayerIndex, MAX_SELECTABLE_PLAYERS);
player = availablePlayerUnits[selectedPlayerIndex]; player = availablePlayerUnits[selectedPlayerIndex];
} } while (player == NULL);
while (player == NULL);
battle.camera.x = player->x - (app.winWidth / 2); battle.camera.x = player->x - (app.winWidth / 2);
battle.camera.y = player->y - (app.winHeight / 2); battle.camera.y = player->y - (app.winHeight / 2);
@ -596,8 +596,7 @@ static void switchGuns(void)
do do
{ {
i = (i + 1) % BT_MAX; i = (i + 1) % BT_MAX;
} } while (!availableGuns[i]);
while (!availableGuns[i]);
} }
if (player->selectedGunType != i) if (player->selectedGunType != i)
@ -617,14 +616,14 @@ static void selectTarget(void)
i = 0; i = 0;
near = NULL; near = NULL;
memset(targets, 0, sizeof(Entity*) * MAX_SELECTABLE_TARGETS); memset(targets, 0, sizeof(Entity *) * MAX_SELECTABLE_TARGETS);
if (player->target && (!player->target->health || !player->target->systemPower)) if (player->target && (!player->target->health || !player->target->systemPower))
{ {
player->target = NULL; player->target = NULL;
} }
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active && e != player && (e->flags & EF_TAKES_DAMAGE) && (!(e->flags & EF_NO_PLAYER_TARGET)) && e->side != player->side && e->alive == ALIVE_ALIVE && e->systemPower > 0 && i < MAX_SELECTABLE_TARGETS) if (e->active && e != player && (e->flags & EF_TAKES_DAMAGE) && (!(e->flags & EF_NO_PLAYER_TARGET)) && e->side != player->side && e->alive == ALIVE_ALIVE && e->systemPower > 0 && i < MAX_SELECTABLE_TARGETS)
{ {
@ -649,7 +648,7 @@ static void selectTarget(void)
total = i; total = i;
for (i = 0 ; i < total ; i++) for (i = 0; i < total; i++)
{ {
if (targets[i] == player->target) if (targets[i] == player->target)
{ {
@ -679,7 +678,7 @@ static void selectMissionTarget(void)
battle.missionTarget = NULL; battle.missionTarget = NULL;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active && e->flags & EF_MISSION_TARGET && e->alive == ALIVE_ALIVE) if (e->active && e->flags & EF_MISSION_TARGET && e->alive == ALIVE_ALIVE)
{ {
@ -755,7 +754,7 @@ void setInitialPlayerAngle(void)
} }
} }
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->side == player->side) if (e->side == player->side)
{ {

View File

@ -19,8 +19,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "quadtree.h"
#include "../system/util.h" #include "../system/util.h"
#include "quadtree.h"
#define QT_INITIAL_CAPACITY 8 #define QT_INITIAL_CAPACITY 8
#define QT_MAX_DEPTH 5 #define QT_MAX_DEPTH 5
@ -50,13 +51,13 @@ void initQuadtree(Quadtree *root)
root->w = BATTLE_AREA_WIDTH; root->w = BATTLE_AREA_WIDTH;
root->h = BATTLE_AREA_HEIGHT; root->h = BATTLE_AREA_HEIGHT;
root->capacity = QT_INITIAL_CAPACITY; root->capacity = QT_INITIAL_CAPACITY;
root->ents = malloc(sizeof(Entity*) * root->capacity); root->ents = malloc(sizeof(Entity *) * root->capacity);
memset(root->ents, 0, sizeof(Entity*) * root->capacity); memset(root->ents, 0, sizeof(Entity *) * root->capacity);
cIndex = 0; cIndex = 0;
cCapacity = QT_INITIAL_CAPACITY; cCapacity = QT_INITIAL_CAPACITY;
candidates = malloc(sizeof(Entity*) * cCapacity); candidates = malloc(sizeof(Entity *) * cCapacity);
memset(candidates, 0, sizeof(Entity*) * cCapacity); memset(candidates, 0, sizeof(Entity *) * cCapacity);
} }
w = root->w / 2; w = root->w / 2;
@ -64,7 +65,7 @@ void initQuadtree(Quadtree *root)
if (root->depth + 1 < QT_MAX_DEPTH) if (root->depth + 1 < QT_MAX_DEPTH)
{ {
for (i = 0 ; i < 4 ; i++) for (i = 0; i < 4; i++)
{ {
node = malloc(sizeof(Quadtree)); node = malloc(sizeof(Quadtree));
memset(node, 0, sizeof(Quadtree)); memset(node, 0, sizeof(Quadtree));
@ -72,8 +73,8 @@ void initQuadtree(Quadtree *root)
node->depth = root->depth + 1; node->depth = root->depth + 1;
node->capacity = QT_INITIAL_CAPACITY; node->capacity = QT_INITIAL_CAPACITY;
node->ents = malloc(sizeof(Entity*) * node->capacity); node->ents = malloc(sizeof(Entity *) * node->capacity);
memset(node->ents, 0, sizeof(Entity*) * node->capacity); memset(node->ents, 0, sizeof(Entity *) * node->capacity);
if (i == 0) if (i == 0)
{ {
@ -142,7 +143,7 @@ static void resizeQTEntCapacity(Quadtree *root)
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing QT node: %d -> %d", root->capacity, n); SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing QT node: %d -> %d", root->capacity, n);
root->ents = resize(root->ents, sizeof(Entity*) * root->capacity, sizeof(Entity*) * n); root->ents = resize(root->ents, sizeof(Entity *) * root->capacity, sizeof(Entity *) * n);
root->capacity = n; root->capacity = n;
} }
@ -218,7 +219,7 @@ static void removeEntity(Entity *e, Quadtree *root)
n = root->numEnts; n = root->numEnts;
for (i = 0 ; i < root->capacity ; i++) for (i = 0; i < root->capacity; i++)
{ {
if (root->ents[i] == e) if (root->ents[i] == e)
{ {
@ -227,13 +228,13 @@ static void removeEntity(Entity *e, Quadtree *root)
} }
} }
qsort(root->ents, n, sizeof(Entity*), candidatesComparator); qsort(root->ents, n, sizeof(Entity *), candidatesComparator);
} }
Entity **getAllEntsWithin(int x, int y, int w, int h, Entity *ignore) Entity **getAllEntsWithin(int x, int y, int w, int h, Entity *ignore)
{ {
cIndex = 0; cIndex = 0;
memset(candidates, 0, sizeof(Entity*) * cCapacity); memset(candidates, 0, sizeof(Entity *) * cCapacity);
getAllEntsWithinNode(x, y, w, h, ignore, &battle.quadtree); getAllEntsWithinNode(x, y, w, h, ignore, &battle.quadtree);
@ -261,14 +262,14 @@ static void getAllEntsWithinNode(int x, int y, int w, int h, Entity *ignore, Qua
} }
else else
{ {
for (i = 0 ; i < 4 ; i++) for (i = 0; i < 4; i++)
{ {
getAllEntsWithinNode(x, y, w, h, ignore, root->node[i]); getAllEntsWithinNode(x, y, w, h, ignore, root->node[i]);
} }
} }
} }
for (i = 0 ; i < root->numEnts ; i++) for (i = 0; i < root->numEnts; i++)
{ {
candidates[cIndex++] = root->ents[i]; candidates[cIndex++] = root->ents[i];
@ -288,7 +289,7 @@ static void resizeCandidates(void)
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing candidates: %d -> %d", cCapacity, n); SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_DEBUG, "Resizing candidates: %d -> %d", cCapacity, n);
candidates = resize(candidates, sizeof(Entity*) * cCapacity, sizeof(Entity*) * n); candidates = resize(candidates, sizeof(Entity *) * cCapacity, sizeof(Entity *) * n);
cCapacity = n; cCapacity = n;
} }
@ -314,7 +315,7 @@ static void destroyQuadtreeNode(Quadtree *root)
if (root->node[0]) if (root->node[0])
{ {
for (i = 0 ; i < 4 ; i++) for (i = 0; i < 4; i++)
{ {
destroyQuadtreeNode(root->node[i]); destroyQuadtreeNode(root->node[i]);
@ -327,8 +328,8 @@ static void destroyQuadtreeNode(Quadtree *root)
static int candidatesComparator(const void *a, const void *b) static int candidatesComparator(const void *a, const void *b)
{ {
Entity *e1 = *((Entity**)a); Entity *e1 = *((Entity **)a);
Entity *e2 = *((Entity**)b); Entity *e2 = *((Entity **)b);
if (!e1) if (!e1)
{ {

View File

@ -19,11 +19,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "radar.h"
#include "../system/text.h"
#include "../system/atlas.h" #include "../system/atlas.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/text.h"
#include "../system/util.h" #include "../system/util.h"
#include "radar.h"
extern App app; extern App app;
extern Battle battle; extern Battle battle;
@ -60,7 +61,7 @@ void drawRadar(void)
blink = battle.stats[STAT_TIME] % 60 < 30; blink = battle.stats[STAT_TIME] % 60 < 30;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
dist = getDistance(e->x, e->y, player->x, player->y); dist = getDistance(e->x, e->y, player->x, player->y);

View File

@ -19,12 +19,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "rope.h"
#include "../battle/hud.h" #include "../battle/hud.h"
#include "../battle/quadtree.h" #include "../battle/quadtree.h"
#include "../system/util.h"
#include "../system/sound.h"
#include "../battle/script.h" #include "../battle/script.h"
#include "../system/sound.h"
#include "../system/util.h"
#include "rope.h"
#define ROPE_DISTANCE 128 #define ROPE_DISTANCE 128
@ -43,7 +44,7 @@ void attachRope(void)
{ {
candidates = getAllEntsInRadius(self->x, self->y, self->separationRadius, self); candidates = getAllEntsInRadius(self->x, self->y, self->separationRadius, self);
for (i = 0, e = candidates[i] ; e != NULL ; e = candidates[++i]) for (i = 0, e = candidates[i]; e != NULL; e = candidates[++i])
{ {
if (!e->owner && e->type == ET_FIGHTER && (e->flags & EF_DISABLED) && (e->flags & EF_ROPED_ATTACHED) == 0 && e->alive == ALIVE_ALIVE) if (!e->owner && e->type == ET_FIGHTER && (e->flags & EF_DISABLED) && (e->flags & EF_ROPED_ATTACHED) == 0 && e->alive == ALIVE_ALIVE)
{ {

View File

@ -19,18 +19,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "script.h"
#include "../json/cJSON.h" #include "../battle/entities.h"
#include "../battle/locations.h"
#include "../battle/fighters.h" #include "../battle/fighters.h"
#include "../galaxy/mission.h"
#include "../battle/hud.h" #include "../battle/hud.h"
#include "../battle/jumpgate.h"
#include "../battle/locations.h"
#include "../battle/messageBox.h"
#include "../battle/objectives.h" #include "../battle/objectives.h"
#include "../battle/spawners.h" #include "../battle/spawners.h"
#include "../battle/waypoints.h" #include "../battle/waypoints.h"
#include "../battle/messageBox.h" #include "../galaxy/mission.h"
#include "../battle/entities.h" #include "../json/cJSON.h"
#include "../battle/jumpgate.h" #include "script.h"
extern Battle battle; extern Battle battle;
extern Colors colors; extern Colors colors;
@ -78,7 +79,7 @@ void doScript(void)
{ {
prev = &head; prev = &head;
for (runner = head.next ; runner != NULL ; runner = runner->next) for (runner = head.next; runner != NULL; runner = runner->next)
{ {
runner->delay = MAX(0, runner->delay - 1); runner->delay = MAX(0, runner->delay - 1);

View File

@ -19,11 +19,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "spawners.h"
#include "../json/cJSON.h"
#include "../battle/fighters.h" #include "../battle/fighters.h"
#include "../json/cJSON.h"
#include "../system/lookup.h" #include "../system/lookup.h"
#include "../system/util.h" #include "../system/util.h"
#include "spawners.h"
extern Battle battle; extern Battle battle;
extern Entity *player; extern Entity *player;
@ -36,7 +37,7 @@ void doSpawners(void)
int i, num, addFlags, addAIFlags; int i, num, addFlags, addAIFlags;
long flags, aiFlags; long flags, aiFlags;
for (s = battle.spawnerHead.next ; s != NULL ; s = s->next) for (s = battle.spawnerHead.next; s != NULL; s = s->next)
{ {
if (s->active && --s->time <= 0) if (s->active && --s->time <= 0)
{ {
@ -66,7 +67,7 @@ void doSpawners(void)
aiFlags = flagsToLong(s->aiFlags, &addAIFlags); aiFlags = flagsToLong(s->aiFlags, &addAIFlags);
} }
for (i = 0 ; i < num ; i++) for (i = 0; i < num; i++)
{ {
type = s->types[rand() % s->numTypes]; type = s->types[rand() % s->numTypes];
@ -122,7 +123,7 @@ void activateSpawner(char *name, int active)
{ {
Spawner *s; Spawner *s;
for (s = battle.spawnerHead.next ; s != NULL ; s = s->next) for (s = battle.spawnerHead.next; s != NULL; s = s->next)
{ {
if (strcmp(s->name, name) == 0) if (strcmp(s->name, name) == 0)
{ {

View File

@ -19,8 +19,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "starfield.h"
#include "../system/util.h" #include "../system/util.h"
#include "starfield.h"
extern App app; extern App app;
@ -32,7 +33,7 @@ void initStars(void)
memset(stars, 0, sizeof(Star) * MAX_STARS); memset(stars, 0, sizeof(Star) * MAX_STARS);
for (i = 0 ; i < MAX_STARS ; i++) for (i = 0; i < MAX_STARS; i++)
{ {
stars[i].x = rand() % app.winWidth; stars[i].x = rand() % app.winWidth;
stars[i].y = rand() % app.winHeight; stars[i].y = rand() % app.winHeight;
@ -46,7 +47,7 @@ void doStars(float dx, float dy)
{ {
int i; int i;
for (i = 0 ; i < MAX_STARS ; i++) for (i = 0; i < MAX_STARS; i++)
{ {
stars[i].x -= (dx * stars[i].speed); stars[i].x -= (dx * stars[i].speed);
stars[i].y -= (dy * stars[i].speed); stars[i].y -= (dy * stars[i].speed);
@ -61,7 +62,7 @@ void drawStars(void)
int i; int i;
int c; int c;
for (i = 0 ; i < MAX_STARS ; i++) for (i = 0; i < MAX_STARS; i++)
{ {
c = 64 * stars[i].speed; c = 64 * stars[i].speed;

View File

@ -19,14 +19,15 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "waypoints.h"
#include "../system/util.h" #include "../battle/entities.h"
#include "../system/sound.h"
#include "../battle/hud.h" #include "../battle/hud.h"
#include "../battle/objectives.h" #include "../battle/objectives.h"
#include "../battle/script.h" #include "../battle/script.h"
#include "../system/atlas.h" #include "../system/atlas.h"
#include "../battle/entities.h" #include "../system/sound.h"
#include "../system/util.h"
#include "waypoints.h"
extern Battle battle; extern Battle battle;
extern Colors colors; extern Colors colors;
@ -57,7 +58,7 @@ Entity *spawnWaypoint(void)
waypoint->active = 0; waypoint->active = 0;
waypoint->health = waypoint->maxHealth = FPS; waypoint->health = waypoint->maxHealth = FPS;
waypoint->texture = getAtlasImage("gfx/entities/waypoint.png"); waypoint->texture = getAtlasImage("gfx/entities/waypoint.png");
waypoint->flags = EF_NO_MT_BOX+EF_MISSION_TARGET+EF_NO_HEALTH_BAR; waypoint->flags = EF_NO_MT_BOX + EF_MISSION_TARGET + EF_NO_HEALTH_BAR;
waypoint->action = think; waypoint->action = think;
waypoint->w = waypoint->texture->rect.w; waypoint->w = waypoint->texture->rect.w;
@ -128,7 +129,7 @@ static int teamMatesClose(void)
if (player->side != SIDE_PANDORAN) if (player->side != SIDE_PANDORAN)
{ {
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active && e->type == ET_FIGHTER && e->side == SIDE_ALLIES) if (e->active && e->type == ET_FIGHTER && e->side == SIDE_ALLIES)
{ {
@ -152,7 +153,7 @@ void activateNextWaypoint(void)
currentWaypointId++; currentWaypointId++;
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->type == ET_WAYPOINT && e->id == currentWaypointId) if (e->type == ET_WAYPOINT && e->id == currentWaypointId)
{ {

View File

@ -19,26 +19,27 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "challengeHome.h"
#include "../battle/starfield.h"
#include "../system/util.h"
#include "../system/input.h"
#include "../game/title.h"
#include "../game/stats.h"
#include "../system/sound.h"
#include "../system/widgets.h"
#include "../galaxy/mission.h"
#include "../game/trophies.h"
#include "../game/options.h"
#include "../system/atlas.h"
#include "../game/fighterDatabase.h"
#include "../system/transition.h"
#include "../challenges/challenges.h"
#include "../system/text.h"
#include "../system/draw.h"
#include "../battle/battle.h" #include "../battle/battle.h"
#include "../battle/starfield.h"
#include "../challenges/challenges.h"
#include "../galaxy/mission.h"
#include "../game/fighterDatabase.h"
#include "../game/options.h"
#include "../game/stats.h"
#include "../game/title.h"
#include "../game/trophies.h"
#include "../system/atlas.h"
#include "../system/draw.h"
#include "../system/input.h"
#include "../system/resources.h" #include "../system/resources.h"
#include "../system/sound.h"
#include "../system/text.h"
#include "../system/textures.h" #include "../system/textures.h"
#include "../system/transition.h"
#include "../system/util.h"
#include "../system/widgets.h"
#include "challengeHome.h"
#define CHALLENGES_PER_PAGE 14 #define CHALLENGES_PER_PAGE 14
#define SHOW_CHALLENGES 0 #define SHOW_CHALLENGES 0
@ -139,7 +140,7 @@ void initChallengeHome(void)
maxPages = page = 0; maxPages = page = 0;
for (m = game.challengeMissionHead.next ; m != NULL ; m = m->next) for (m = game.challengeMissionHead.next; m != NULL; m = m->next)
{ {
maxPages++; maxPages++;
} }
@ -213,7 +214,7 @@ static void unlockChallenges(void)
prevCompleted = 1; prevCompleted = 1;
for (m = game.challengeMissionHead.next ; m != NULL ; m = m->next) for (m = game.challengeMissionHead.next; m != NULL; m = m->next)
{ {
m->available = (prevCompleted > 0 || dev.debug); m->available = (prevCompleted > 0 || dev.debug);
@ -275,7 +276,7 @@ static void doChallengeList(void)
startIndex = page * CHALLENGES_PER_PAGE; startIndex = page * CHALLENGES_PER_PAGE;
end = startIndex + CHALLENGES_PER_PAGE; end = startIndex + CHALLENGES_PER_PAGE;
for (c = game.challengeMissionHead.next ; c != NULL ; c = c->next) for (c = game.challengeMissionHead.next; c != NULL; c = c->next)
{ {
if (i >= startIndex && i < end && app.mouse.button[SDL_BUTTON_LEFT] && collision(app.uiMouse.x, app.uiMouse.y, 3, 3, c->rect.x, c->rect.y, c->rect.w, c->rect.h)) if (i >= startIndex && i < end && app.mouse.button[SDL_BUTTON_LEFT] && collision(app.uiMouse.x, app.uiMouse.y, 3, 3, c->rect.x, c->rect.y, c->rect.w, c->rect.h))
{ {
@ -404,7 +405,7 @@ static void drawChallenges(void)
i = 0; i = 0;
for (m = game.challengeMissionHead.next ; m != NULL ; m = m->next) for (m = game.challengeMissionHead.next; m != NULL; m = m->next)
{ {
m->rect = r; m->rect = r;

View File

@ -19,16 +19,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "challenges.h"
#include "../battle/fighters.h"
#include "../galaxy/mission.h"
#include "../game/stats.h"
#include "../game/trophies.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "../system/io.h"
#include "../system/lookup.h" #include "../system/lookup.h"
#include "../system/util.h" #include "../system/util.h"
#include "../battle/fighters.h"
#include "../system/widgets.h" #include "../system/widgets.h"
#include "../galaxy/mission.h" #include "challenges.h"
#include "../game/trophies.h"
#include "../game/stats.h"
#include "../system/io.h"
extern Battle battle; extern Battle battle;
extern Dev dev; extern Dev dev;
@ -85,7 +86,7 @@ void initChallenges(void)
filenames = getFileList("data/challenges", &count); filenames = getFileList("data/challenges", &count);
for (i = 0 ; i < count ; i++) for (i = 0; i < count; i++)
{ {
sprintf(path, "data/challenges/%s", filenames[i]); sprintf(path, "data/challenges/%s", filenames[i]);
@ -255,7 +256,7 @@ static int updateChallenges(void)
numPassed = 0; numPassed = 0;
for (i = 0 ; i < MAX_CHALLENGES ; i++) for (i = 0; i < MAX_CHALLENGES; i++)
{ {
c = game.currentMission->challengeData.challenges[i]; c = game.currentMission->challengeData.challenges[i];
@ -335,7 +336,7 @@ static void printStats(void)
{ {
int i; int i;
for (i = 0 ; i < STAT_MAX ; i++) for (i = 0; i < STAT_MAX; i++)
{ {
if (battle.stats[i]) if (battle.stats[i])
{ {
@ -495,7 +496,7 @@ Challenge *getChallenge(Mission *mission, int type, int value)
int i; int i;
Challenge *c; Challenge *c;
for (i = 0 ; i < MAX_CHALLENGES ; i++) for (i = 0; i < MAX_CHALLENGES; i++)
{ {
c = mission->challengeData.challenges[i]; c = mission->challengeData.challenges[i];
@ -527,11 +528,11 @@ void updateChallengeMissions(void)
Mission *m; Mission *m;
Challenge *c; Challenge *c;
for (m = game.challengeMissionHead.next ; m != NULL ; m = m->next) for (m = game.challengeMissionHead.next; m != NULL; m = m->next)
{ {
m->totalChallenges = m->completedChallenges = 0; m->totalChallenges = m->completedChallenges = 0;
for (i = 0 ; i < MAX_CHALLENGES ; i++) for (i = 0; i < MAX_CHALLENGES; i++)
{ {
c = m->challengeData.challenges[i]; c = m->challengeData.challenges[i];
@ -598,7 +599,7 @@ static int alreadyPassed(void)
int i; int i;
Challenge *c; Challenge *c;
for (i = 0 ; i < MAX_CHALLENGES ; i++) for (i = 0; i < MAX_CHALLENGES; i++)
{ {
c = game.currentMission->challengeData.challenges[i]; c = game.currentMission->challengeData.challenges[i];

View File

@ -18,15 +18,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
#include "math.h"
#include "ctype.h" #include "ctype.h"
#include "SDL2/SDL.h"
#include "defs.h" #include "defs.h"
#include "math.h"
#include "SDL2/SDL.h"
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "structs.h" #include "structs.h"
extern char *getTranslatedString(char *string); extern char *getTranslatedString(char *string);

View File

@ -49,10 +49,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define _(string) getTranslatedString(string) #define _(string) getTranslatedString(string)
#define PI 3.14159265358979323846 #define PI 3.14159265358979323846
#define MIN(a,b) (((a)<(b))?(a):(b)) #define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define MAX(a,b) (((a)>(b))?(a):(b)) #define MAX(a, b) (((a) > (b)) ? (a) : (b))
#define CAROLINE(a,b) MIN(a,b) #define CAROLINE(a, b) MIN(a, b)
#define STRNCPY(dest, src, n) strncpy(dest, src, n); dest[n - 1] = '\0' #define STRNCPY(dest, src, n) \
strncpy(dest, src, n); \
dest[n - 1] = '\0'
#define TO_RAIDANS(angleDegrees) (angleDegrees * PI / 180.0) #define TO_RAIDANS(angleDegrees) (angleDegrees * PI / 180.0)
#define TO_DEGREES(angleRadians) (angleRadians * 180.0 / PI) #define TO_DEGREES(angleRadians) (angleRadians * 180.0 / PI)

View File

@ -19,26 +19,27 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "galacticMap.h"
#include "../battle/starfield.h"
#include "../system/util.h"
#include "../system/input.h"
#include "../game/title.h"
#include "../game/stats.h"
#include "../system/widgets.h"
#include "../galaxy/mission.h"
#include "../game/trophies.h"
#include "../system/modalDialog.h"
#include "../game/options.h"
#include "../system/atlas.h"
#include "../game/fighterDatabase.h"
#include "../system/transition.h"
#include "../system/text.h"
#include "../galaxy/starSystems.h"
#include "../system/draw.h"
#include "../battle/battle.h" #include "../battle/battle.h"
#include "../battle/starfield.h"
#include "../galaxy/mission.h"
#include "../galaxy/starSystems.h"
#include "../game/fighterDatabase.h"
#include "../game/options.h"
#include "../game/stats.h"
#include "../game/title.h"
#include "../game/trophies.h"
#include "../system/atlas.h"
#include "../system/draw.h"
#include "../system/input.h"
#include "../system/modalDialog.h"
#include "../system/sound.h" #include "../system/sound.h"
#include "../system/text.h"
#include "../system/textures.h" #include "../system/textures.h"
#include "../system/transition.h"
#include "../system/util.h"
#include "../system/widgets.h"
#include "galacticMap.h"
#define MAX_LISTED_MISSIONS 9 #define MAX_LISTED_MISSIONS 9
#define SHOW_FIGHTER_DB 6 #define SHOW_FIGHTER_DB 6
@ -193,7 +194,7 @@ static void updateCampaignProgress(void)
if (!campaignComplete && game.completedMissions == game.totalMissions) if (!campaignComplete && game.completedMissions == game.totalMissions)
{ {
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
if (starSystem->missionHead.next && starSystem->missionHead.next->available) if (starSystem->missionHead.next && starSystem->missionHead.next->available)
{ {
@ -213,7 +214,7 @@ static void updatePandoranAdvance(void)
fallenStarSystem = NULL; fallenStarSystem = NULL;
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
if (starSystem->side != SIDE_PANDORAN && starSystem->fallsToPandorans && starSystem->completedMissions == starSystem->totalMissions && starSystem->totalMissions > 0) if (starSystem->side != SIDE_PANDORAN && starSystem->fallsToPandorans && starSystem->completedMissions == starSystem->totalMissions && starSystem->totalMissions > 0)
{ {
@ -286,7 +287,7 @@ static void doStarSystems(void)
selectedStarSystem = NULL; selectedStarSystem = NULL;
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
cameraMin.x = MIN(cameraMin.x, starSystem->x); cameraMin.x = MIN(cameraMin.x, starSystem->x);
cameraMin.y = MIN(cameraMin.y, starSystem->y); cameraMin.y = MIN(cameraMin.y, starSystem->y);
@ -357,7 +358,7 @@ static void doStarSystemView(void)
{ {
Mission *mission; Mission *mission;
for (mission = selectedStarSystem->missionHead.next ; mission != NULL ; mission = mission->next) for (mission = selectedStarSystem->missionHead.next; mission != NULL; mission = mission->next)
{ {
if (mission->available && collision(app.uiMouse.x - app.mouse.w / 2, app.uiMouse.y - app.mouse.h / 2, app.mouse.w, app.mouse.h, mission->rect.x, mission->rect.y, mission->rect.w, mission->rect.h)) if (mission->available && collision(app.uiMouse.x - app.mouse.w / 2, app.uiMouse.y - app.mouse.h / 2, app.mouse.w, app.mouse.h, mission->rect.x, mission->rect.y, mission->rect.w, mission->rect.h))
{ {
@ -390,7 +391,7 @@ static void addPulses(void)
Pulse *pulse; Pulse *pulse;
StarSystem *starSystem; StarSystem *starSystem;
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
if (starSystem->completedMissions < starSystem->availableMissions || (campaignComplete && starSystem->activeMission)) if (starSystem->completedMissions < starSystem->availableMissions || (campaignComplete && starSystem->activeMission))
{ {
@ -439,7 +440,7 @@ static void doPulses(void)
prev = &pulseHead; prev = &pulseHead;
for (pulse = pulseHead.next ; pulse != NULL ; pulse = pulse->next) for (pulse = pulseHead.next; pulse != NULL; pulse = pulse->next)
{ {
pulse->size += 0.5; pulse->size += 0.5;
pulse->life--; pulse->life--;
@ -504,7 +505,7 @@ static void drawPulses(void)
{ {
Pulse *pulse; Pulse *pulse;
for (pulse = pulseHead.next ; pulse != NULL ; pulse = pulse->next) for (pulse = pulseHead.next; pulse != NULL; pulse = pulse->next)
{ {
drawCircle(pulse->x - camera.x, pulse->y - camera.y, pulse->size, pulse->r, pulse->g, pulse->b, pulse->life); drawCircle(pulse->x - camera.x, pulse->y - camera.y, pulse->size, pulse->r, pulse->g, pulse->b, pulse->life);
} }
@ -526,7 +527,7 @@ static void drawGalaxy(void)
SDL_Color color; SDL_Color color;
float ax, ay, aa; float ax, ay, aa;
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
r.x = starSystem->x - camera.x; r.x = starSystem->x - camera.x;
r.y = starSystem->y - camera.y; r.y = starSystem->y - camera.y;
@ -651,7 +652,7 @@ static Mission *nextAvailableMission(StarSystem *starSystem)
{ {
Mission *m; Mission *m;
for (m = starSystem->missionHead.next ; m != NULL ; m = m->next) for (m = starSystem->missionHead.next; m != NULL; m = m->next)
{ {
if (m->available && !m->completed) if (m->available && !m->completed)
{ {
@ -694,7 +695,7 @@ static void drawStarSystemDetail(void)
y += 80; y += 80;
for (mission = selectedStarSystem->missionHead.next ; mission != NULL ; mission = mission->next) for (mission = selectedStarSystem->missionHead.next; mission != NULL; mission = mission->next)
{ {
mission->rect.x = 200; mission->rect.x = 200;
mission->rect.y = y - 2; mission->rect.y = y - 2;

View File

@ -18,35 +18,37 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h"
#include "mission.h"
#include <time.h> #include <time.h>
#include "../json/cJSON.h"
#include "../battle/locations.h" #include "../common.h"
#include "../system/widgets.h"
#include "../system/io.h"
#include "../galaxy/starSystems.h"
#include "../battle/jumpgate.h"
#include "../battle/missionInfo.h"
#include "../system/util.h"
#include "../battle/player.h"
#include "../system/sound.h"
#include "../system/transition.h"
#include "../battle/objectives.h"
#include "../battle/script.h"
#include "../battle/waypoints.h"
#include "../battle/spawners.h"
#include "../system/lookup.h"
#include "../battle/mine.h"
#include "../challenges/challenges.h"
#include "../battle/fighters.h"
#include "../system/atlas.h"
#include "../system/resources.h"
#include "../battle/capitalShips.h" #include "../battle/capitalShips.h"
#include "../game/trophies.h"
#include "../system/textures.h"
#include "../battle/items.h"
#include "../battle/entities.h" #include "../battle/entities.h"
#include "../battle/fighters.h"
#include "../battle/items.h"
#include "../battle/jumpgate.h"
#include "../battle/locations.h"
#include "../battle/mine.h"
#include "../battle/missionInfo.h"
#include "../battle/objectives.h"
#include "../battle/player.h"
#include "../battle/script.h"
#include "../battle/spawners.h"
#include "../battle/waypoints.h"
#include "../challenges/challenges.h"
#include "../galaxy/starSystems.h"
#include "../game/trophies.h"
#include "../json/cJSON.h"
#include "../system/atlas.h"
#include "../system/io.h"
#include "../system/lookup.h"
#include "../system/resources.h"
#include "../system/sound.h"
#include "../system/textures.h"
#include "../system/transition.h"
#include "../system/util.h"
#include "../system/widgets.h"
#include "mission.h"
extern App app; extern App app;
extern Battle battle; extern Battle battle;
@ -377,7 +379,7 @@ static void loadEntities(cJSON *node)
flags = flagsToLong(cJSON_GetObjectItem(node, "flags")->valuestring, &addFlags); flags = flagsToLong(cJSON_GetObjectItem(node, "flags")->valuestring, &addFlags);
} }
for (i = 0 ; i < number ; i++) for (i = 0; i < number; i++)
{ {
switch (type) switch (type)
{ {
@ -467,7 +469,7 @@ static void loadEpicData(cJSON *node)
addEpicKillsObjective(); addEpicKillsObjective();
} }
for (e = battle.entityHead.next ; e != NULL ; e = e->next) for (e = battle.entityHead.next; e != NULL; e = e->next)
{ {
if (e->active && e->type == ET_FIGHTER && numFighters[e->side]++ >= battle.epicFighterLimit) if (e->active && e->type == ET_FIGHTER && numFighters[e->side]++ >= battle.epicFighterLimit)
{ {
@ -482,9 +484,9 @@ Mission *getMission(char *filename)
Mission *mission; Mission *mission;
/* First, search the star systems */ /* First, search the star systems */
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
for (mission = starSystem->missionHead.next ; mission != NULL ; mission = mission->next) for (mission = starSystem->missionHead.next; mission != NULL; mission = mission->next)
{ {
if (strcmp(mission->filename, filename) == 0) if (strcmp(mission->filename, filename) == 0)
{ {
@ -494,7 +496,7 @@ Mission *getMission(char *filename)
} }
/* now search the challenges */ /* now search the challenges */
for (mission = game.challengeMissionHead.next ; mission != NULL ; mission = mission->next) for (mission = game.challengeMissionHead.next; mission != NULL; mission = mission->next)
{ {
if (strcmp(mission->filename, filename) == 0) if (strcmp(mission->filename, filename) == 0)
{ {
@ -522,10 +524,6 @@ int isMissionAvailable(Mission *mission, Mission *prev)
} }
else else
{ {
return mission->completed || ( return mission->completed || (game.completedMissions >= mission->requires && game.stats[STAT_OPTIONAL_COMPLETED] >= mission->requiresOptional && game.completedMissions < mission->expires) || dev.debug;
game.completedMissions >= mission->requires &&
game.stats[STAT_OPTIONAL_COMPLETED] >= mission->requiresOptional &&
game.completedMissions < mission->expires
) || dev.debug;
} }
} }

View File

@ -19,12 +19,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "starSystems.h"
#include "../json/cJSON.h"
#include "../galaxy/mission.h" #include "../galaxy/mission.h"
#include "../json/cJSON.h"
#include "../system/io.h"
#include "../system/lookup.h" #include "../system/lookup.h"
#include "../system/util.h" #include "../system/util.h"
#include "../system/io.h" #include "starSystems.h"
extern Game game; extern Game game;
@ -42,7 +43,7 @@ void initStarSystems(void)
text = readFile("data/galaxy/starSystems.json"); text = readFile("data/galaxy/starSystems.json");
root = cJSON_Parse(text); root = cJSON_Parse(text);
for (node = cJSON_GetObjectItem(root, "starSystems")->child ; node != NULL ; node = node->next) for (node = cJSON_GetObjectItem(root, "starSystems")->child; node != NULL; node = node->next)
{ {
starSystem = loadStarSystem(node); starSystem = loadStarSystem(node);
tail->next = starSystem; tail->next = starSystem;
@ -95,7 +96,7 @@ static void loadMissions(StarSystem *starSystem)
STRNCPY(name, starSystem->name, MAX_NAME_LENGTH); STRNCPY(name, starSystem->name, MAX_NAME_LENGTH);
for (i = 0 ; name[i] ; i++) for (i = 0; name[i]; i++)
{ {
name[i] = tolower(name[i]); name[i] = tolower(name[i]);
} }
@ -104,7 +105,7 @@ static void loadMissions(StarSystem *starSystem)
filenames = getFileList(path, &count); filenames = getFileList(path, &count);
for (i = 0 ; i < count ; i++) for (i = 0; i < count; i++)
{ {
sprintf(path, "data/missions/%s/%s", name, filenames[i]); sprintf(path, "data/missions/%s/%s", name, filenames[i]);
@ -126,7 +127,7 @@ StarSystem *getStarSystem(char *name)
{ {
StarSystem *starSystem; StarSystem *starSystem;
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
if (strcmp(starSystem->name, name) == 0) if (strcmp(starSystem->name, name) == 0)
{ {
@ -144,11 +145,11 @@ void updateStarSystemMissions(void)
game.completedMissions = game.totalMissions = game.availableMissions = 0; game.completedMissions = game.totalMissions = game.availableMissions = 0;
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
starSystem->completedMissions = starSystem->availableMissions = starSystem->totalMissions = 0; starSystem->completedMissions = starSystem->availableMissions = starSystem->totalMissions = 0;
for (mission = starSystem->missionHead.next ; mission != NULL ; mission = mission->next) for (mission = starSystem->missionHead.next; mission != NULL; mission = mission->next)
{ {
starSystem->totalMissions++; starSystem->totalMissions++;
@ -169,11 +170,11 @@ void updateStarSystemMissions(void)
} }
} }
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
prev = &starSystem->missionHead; prev = &starSystem->missionHead;
for (mission = starSystem->missionHead.next ; mission != NULL ; mission = mission->next) for (mission = starSystem->missionHead.next; mission != NULL; mission = mission->next)
{ {
mission->available = starSystem->type == SS_SOL || isMissionAvailable(mission, prev); mission->available = starSystem->type == SS_SOL || isMissionAvailable(mission, prev);

View File

@ -19,16 +19,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "credits.h"
#include "../json/cJSON.h"
#include "../system/draw.h"
#include "../game/title.h" #include "../game/title.h"
#include "../system/sound.h" #include "../json/cJSON.h"
#include "../system/transition.h"
#include "../system/textures.h"
#include "../system/io.h"
#include "../system/text.h"
#include "../system/atlas.h" #include "../system/atlas.h"
#include "../system/draw.h"
#include "../system/io.h"
#include "../system/sound.h"
#include "../system/text.h"
#include "../system/textures.h"
#include "../system/transition.h"
#include "credits.h"
#define CREDIT_LINE_LIMIT (UI_WIDTH - 300) #define CREDIT_LINE_LIMIT (UI_WIDTH - 300)
@ -79,7 +80,7 @@ static void logic(void)
handleKeyboard(); handleKeyboard();
for (c = head.next ; c != NULL ; c = c->next) for (c = head.next; c != NULL; c = c->next)
{ {
c->y -= creditSpeed; c->y -= creditSpeed;
@ -109,7 +110,7 @@ static void draw(void)
app.textWidth = CREDIT_LINE_LIMIT; app.textWidth = CREDIT_LINE_LIMIT;
for (c = head.next ; c != NULL ; c = c->next) for (c = head.next; c != NULL; c = c->next)
{ {
if (c->y > -c->h && c->y < app.winHeight) if (c->y > -c->h && c->y < app.winHeight)
{ {
@ -134,7 +135,7 @@ static void loadCredits(void)
app.textWidth = CREDIT_LINE_LIMIT; app.textWidth = CREDIT_LINE_LIMIT;
for (node = root->child ; node != NULL ; node = node->next) for (node = root->child; node != NULL; node = node->next)
{ {
c = malloc(sizeof(Credit)); c = malloc(sizeof(Credit));
memset(c, 0, sizeof(Credit)); memset(c, 0, sizeof(Credit));

View File

@ -19,12 +19,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "fighterDatabase.h"
#include "../system/text.h"
#include "../battle/fighters.h" #include "../battle/fighters.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/widgets.h" #include "../system/text.h"
#include "../system/util.h" #include "../system/util.h"
#include "../system/widgets.h"
#include "fighterDatabase.h"
extern App app; extern App app;
extern Colors colors; extern Colors colors;
@ -151,7 +152,7 @@ void drawFighterDatabase(void)
y = 200; y = 200;
for (i = 1 ; i < BT_MAX ; i++) for (i = 1; i < BT_MAX; i++)
{ {
numCannons = countFighterGuns(fighter, i); numCannons = countFighterGuns(fighter, i);
if (numCannons > 0) if (numCannons > 0)
@ -186,7 +187,7 @@ static int countFighterGuns(Entity *fighter, int type)
num = 0; num = 0;
for (i = 0 ; i < MAX_FIGHTER_GUNS ; i++) for (i = 0; i < MAX_FIGHTER_GUNS; i++)
{ {
if (fighter->guns[i].type == type) if (fighter->guns[i].type == type)
{ {
@ -220,7 +221,7 @@ static void setNumDestroyed(void)
numDestroyed = 0; numDestroyed = 0;
for (t = game.fighterStatHead.next ; t != NULL ; t = t->next) for (t = game.fighterStatHead.next; t != NULL; t = t->next)
{ {
if (strcmp(t->key, fighter->name) == 0) if (strcmp(t->key, fighter->name) == 0)
{ {

View File

@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "game.h" #include "game.h"
extern Game game; extern Game game;

View File

@ -19,15 +19,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "load.h"
#include "../json/cJSON.h"
#include "../system/lookup.h"
#include "../challenges/challenges.h"
#include "../battle/fighters.h" #include "../battle/fighters.h"
#include "../challenges/challenges.h"
#include "../galaxy/mission.h" #include "../galaxy/mission.h"
#include "../game/trophies.h"
#include "../system/io.h"
#include "../galaxy/starSystems.h" #include "../galaxy/starSystems.h"
#include "../game/trophies.h"
#include "../json/cJSON.h"
#include "../system/io.h"
#include "../system/lookup.h"
#include "load.h"
extern Game game; extern Game game;
@ -69,7 +70,7 @@ static void loadStarSystems(cJSON *starSystemsJSON)
StarSystem *starSystem; StarSystem *starSystem;
cJSON *starSystemJSON; cJSON *starSystemJSON;
for (starSystemJSON = starSystemsJSON->child ; starSystemJSON != NULL ; starSystemJSON = starSystemJSON->next) for (starSystemJSON = starSystemsJSON->child; starSystemJSON != NULL; starSystemJSON = starSystemJSON->next)
{ {
starSystem = getStarSystem(cJSON_GetObjectItem(starSystemJSON, "name")->valuestring); starSystem = getStarSystem(cJSON_GetObjectItem(starSystemJSON, "name")->valuestring);
@ -84,7 +85,7 @@ static void loadMissions(cJSON *missionsJSON)
Mission *mission; Mission *mission;
cJSON *missionJSON; cJSON *missionJSON;
for (missionJSON = missionsJSON->child ; missionJSON != NULL ; missionJSON = missionJSON->next) for (missionJSON = missionsJSON->child; missionJSON != NULL; missionJSON = missionJSON->next)
{ {
mission = getMission(cJSON_GetObjectItem(missionJSON, "filename")->valuestring); mission = getMission(cJSON_GetObjectItem(missionJSON, "filename")->valuestring);
@ -104,11 +105,11 @@ static void loadChallenges(cJSON *missionsJSON)
if (missionsJSON) if (missionsJSON)
{ {
for (missionJSON = missionsJSON->child ; missionJSON != NULL ; missionJSON = missionJSON->next) for (missionJSON = missionsJSON->child; missionJSON != NULL; missionJSON = missionJSON->next)
{ {
mission = getMission(cJSON_GetObjectItem(missionJSON, "filename")->valuestring); mission = getMission(cJSON_GetObjectItem(missionJSON, "filename")->valuestring);
for (challengeJSON = cJSON_GetObjectItem(missionJSON, "challenges")->child ; challengeJSON != NULL ; challengeJSON = challengeJSON->next) for (challengeJSON = cJSON_GetObjectItem(missionJSON, "challenges")->child; challengeJSON != NULL; challengeJSON = challengeJSON->next)
{ {
type = lookup(cJSON_GetObjectItem(challengeJSON, "type")->valuestring); type = lookup(cJSON_GetObjectItem(challengeJSON, "type")->valuestring);
value = cJSON_GetObjectItem(challengeJSON, "value")->valueint; value = cJSON_GetObjectItem(challengeJSON, "value")->valueint;
@ -129,7 +130,7 @@ static void loadStats(cJSON *statsJSON)
int i; int i;
char *statName; char *statName;
for (i = 0 ; i < STAT_MAX ; i++) for (i = 0; i < STAT_MAX; i++)
{ {
statName = getLookupName("STAT_", i); statName = getLookupName("STAT_", i);
@ -147,7 +148,7 @@ static void loadTrophies(cJSON *trophiesJSON)
if (trophiesJSON) if (trophiesJSON)
{ {
for (trophyJSON = trophiesJSON->child ; trophyJSON != NULL ; trophyJSON = trophyJSON->next) for (trophyJSON = trophiesJSON->child; trophyJSON != NULL; trophyJSON = trophyJSON->next)
{ {
t = getTrophy(cJSON_GetObjectItem(trophyJSON, "id")->valuestring); t = getTrophy(cJSON_GetObjectItem(trophyJSON, "id")->valuestring);
@ -171,7 +172,7 @@ static void loadFighterStats(cJSON *fighterStatsJSON)
if (fighterStatsJSON) if (fighterStatsJSON)
{ {
for (fighterStatJSON = fighterStatsJSON->child ; fighterStatJSON != NULL ; fighterStatJSON = fighterStatJSON->next) for (fighterStatJSON = fighterStatsJSON->child; fighterStatJSON != NULL; fighterStatJSON = fighterStatJSON->next)
{ {
t = malloc(sizeof(Tuple)); t = malloc(sizeof(Tuple));
memset(t, 0, sizeof(Tuple)); memset(t, 0, sizeof(Tuple));

View File

@ -18,15 +18,17 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h"
#include "options.h"
#include <SDL2/SDL_mixer.h> #include <SDL2/SDL_mixer.h>
#include "../common.h"
#include "../battle/starfield.h" #include "../battle/starfield.h"
#include "../system/controls.h" #include "../system/controls.h"
#include "../system/widgets.h" #include "../system/draw.h"
#include "../system/init.h" #include "../system/init.h"
#include "../system/text.h" #include "../system/text.h"
#include "../system/draw.h" #include "../system/widgets.h"
#include "options.h"
#define SHOW_CONTROLS 1 #define SHOW_CONTROLS 1
#define SHOW_MAIN 0 #define SHOW_MAIN 0
@ -76,11 +78,11 @@ void initOptions(void (*rtn)(void))
OPTIONS_TEXT = _("Options"); OPTIONS_TEXT = _("Options");
RESOLUTION_TEXT = _("Note: you must restart the game for window size and fullscreen options to take effect."); RESOLUTION_TEXT = _("Note: you must restart the game for window size and fullscreen options to take effect.");
#if FIXED_RESOLUTION #if FIXED_RESOLUTION
getWidget("windowSize", "options")->enabled = 0; getWidget("windowSize", "options")->enabled = 0;
getWidget("fullscreen", "options")->enabled = 0; getWidget("fullscreen", "options")->enabled = 0;
RESOLUTION_TEXT = _("Note: this device does not support changing the screen resolution."); RESOLUTION_TEXT = _("Note: this device does not support changing the screen resolution.");
#endif #endif
returnFromOptions = rtn; returnFromOptions = rtn;
@ -148,7 +150,7 @@ void updateCustomResolutionOption(void)
w = getWidget("windowSize", "options"); w = getWidget("windowSize", "options");
for (i = 0 ; i < w->numOptions - 1 ; i++) for (i = 0; i < w->numOptions - 1; i++)
{ {
if (strcmp(w->options[i], value) == 0) if (strcmp(w->options[i], value) == 0)
{ {
@ -204,7 +206,7 @@ static void changeFullscreen(char *value)
{ {
app.fullscreen = strcmp(value, "On") == 0; app.fullscreen = strcmp(value, "On") == 0;
SDL_SetWindowFullscreen(app.window, app.fullscreen? SDL_WINDOW_FULLSCREEN : 0); SDL_SetWindowFullscreen(app.window, app.fullscreen ? SDL_WINDOW_FULLSCREEN : 0);
} }
static void ok(void) static void ok(void)

View File

@ -19,10 +19,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "save.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "../system/lookup.h"
#include "../system/io.h" #include "../system/io.h"
#include "../system/lookup.h"
#include "save.h"
extern Game game; extern Game game;
@ -71,7 +72,7 @@ static void saveStarSystems(cJSON *gameJSON)
starSystemsJSON = cJSON_CreateArray(); starSystemsJSON = cJSON_CreateArray();
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
if (starSystem->totalMissions > 0) if (starSystem->totalMissions > 0)
{ {
@ -95,7 +96,7 @@ static cJSON *getMissionsJSON(StarSystem *starSystem)
missionsJSON = cJSON_CreateArray(); missionsJSON = cJSON_CreateArray();
for (mission = starSystem->missionHead.next ; mission != NULL ; mission = mission->next) for (mission = starSystem->missionHead.next; mission != NULL; mission = mission->next)
{ {
missionJSON = cJSON_CreateObject(); missionJSON = cJSON_CreateObject();
@ -117,7 +118,7 @@ static void saveChallenges(cJSON *gameJSON)
missionsJSON = cJSON_CreateArray(); missionsJSON = cJSON_CreateArray();
for (mission = game.challengeMissionHead.next ; mission != NULL ; mission = mission->next) for (mission = game.challengeMissionHead.next; mission != NULL; mission = mission->next)
{ {
missionJSON = cJSON_CreateObject(); missionJSON = cJSON_CreateObject();
@ -125,7 +126,7 @@ static void saveChallenges(cJSON *gameJSON)
challengesJSON = cJSON_CreateArray(); challengesJSON = cJSON_CreateArray();
for (i = 0 ; i < MAX_CHALLENGES ; i++) for (i = 0; i < MAX_CHALLENGES; i++)
{ {
c = mission->challengeData.challenges[i]; c = mission->challengeData.challenges[i];
@ -154,7 +155,7 @@ static void saveStats(cJSON *gameJSON)
cJSON *stats = cJSON_CreateObject(); cJSON *stats = cJSON_CreateObject();
for (i = 0 ; i < STAT_MAX ; i++) for (i = 0; i < STAT_MAX; i++)
{ {
cJSON_AddNumberToObject(stats, getLookupName("STAT_", i), game.stats[i]); cJSON_AddNumberToObject(stats, getLookupName("STAT_", i), game.stats[i]);
} }
@ -169,7 +170,7 @@ static void saveTrophies(cJSON *gameJSON)
trophiesJSON = cJSON_CreateArray(); trophiesJSON = cJSON_CreateArray();
for (t = game.trophyHead.next ; t != NULL ; t = t->next) for (t = game.trophyHead.next; t != NULL; t = t->next)
{ {
if (t->awarded) if (t->awarded)
{ {
@ -192,7 +193,7 @@ static void saveFighterStats(cJSON *gameJSON)
fighterStatsJSON = cJSON_CreateArray(); fighterStatsJSON = cJSON_CreateArray();
for (t = game.fighterStatHead.next ; t != NULL ; t = t->next) for (t = game.fighterStatHead.next; t != NULL; t = t->next)
{ {
fighterStatJSON = cJSON_CreateObject(); fighterStatJSON = cJSON_CreateObject();

View File

@ -19,10 +19,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "stats.h"
#include "../system/text.h" #include "../system/text.h"
#include "../system/widgets.h"
#include "../system/util.h" #include "../system/util.h"
#include "../system/widgets.h"
#include "stats.h"
#define STATS_PER_PAGE 9 #define STATS_PER_PAGE 9
@ -117,7 +118,7 @@ static void calculatePercentComplete(void)
completed = total = 0; completed = total = 0;
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
if (starSystem->type == SS_NORMAL) if (starSystem->type == SS_NORMAL)
{ {
@ -126,7 +127,7 @@ static void calculatePercentComplete(void)
} }
} }
for (mission = game.challengeMissionHead.next ; mission != NULL ; mission = mission->next) for (mission = game.challengeMissionHead.next; mission != NULL; mission = mission->next)
{ {
completed += mission->completedChallenges; completed += mission->completedChallenges;
total += mission->totalChallenges; total += mission->totalChallenges;
@ -168,7 +169,7 @@ void drawStats(void)
startIndex = (page * STATS_PER_PAGE); startIndex = (page * STATS_PER_PAGE);
for (i = startIndex ; i < startIndex + STATS_PER_PAGE ; i++) for (i = startIndex; i < startIndex + STATS_PER_PAGE; i++)
{ {
if (i < STAT_TIME) if (i < STAT_TIME)
{ {

View File

@ -19,26 +19,27 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "title.h"
#include "../galaxy/mission.h"
#include "../system/transition.h"
#include "../battle/starfield.h"
#include "../game/credits.h"
#include "../system/input.h"
#include "../game/stats.h"
#include "../system/widgets.h"
#include "../challenges/challengeHome.h"
#include "../battle/battle.h" #include "../battle/battle.h"
#include "../galaxy/galacticMap.h"
#include "../game/options.h"
#include "../system/atlas.h"
#include "../game/fighterDatabase.h"
#include "../game/trophies.h"
#include "../battle/effects.h" #include "../battle/effects.h"
#include "../system/text.h" #include "../battle/starfield.h"
#include "../challenges/challengeHome.h"
#include "../galaxy/galacticMap.h"
#include "../galaxy/mission.h"
#include "../game/credits.h"
#include "../game/fighterDatabase.h"
#include "../game/options.h"
#include "../game/stats.h"
#include "../game/trophies.h"
#include "../system/atlas.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/input.h"
#include "../system/sound.h" #include "../system/sound.h"
#include "../system/text.h"
#include "../system/textures.h" #include "../system/textures.h"
#include "../system/transition.h"
#include "../system/widgets.h"
#include "title.h"
#define NUM_FIGHTERS 12 #define NUM_FIGHTERS 12
#define SHOW_FIGHTER_DB 4 #define SHOW_FIGHTER_DB 4
@ -137,11 +138,11 @@ static void initFighters(void)
{ {
int i, numTextures; int i, numTextures;
numTextures = sizeof(fighterTextures) / sizeof(char*); numTextures = sizeof(fighterTextures) / sizeof(char *);
memset(&fighters, 0, sizeof(Entity) * NUM_FIGHTERS); memset(&fighters, 0, sizeof(Entity) * NUM_FIGHTERS);
for (i = 0 ; i < NUM_FIGHTERS ; i++) for (i = 0; i < NUM_FIGHTERS; i++)
{ {
fighters[i].x = rand() % (app.winWidth - 32); fighters[i].x = rand() % (app.winWidth - 32);
fighters[i].y = app.winHeight + (rand() % app.winHeight); fighters[i].y = app.winHeight + (rand() % app.winHeight);
@ -184,9 +185,9 @@ static void doFighters(void)
{ {
int i, numTextures; int i, numTextures;
numTextures = sizeof(fighterTextures) / sizeof(char*); numTextures = sizeof(fighterTextures) / sizeof(char *);
for (i = 0 ; i < NUM_FIGHTERS ; i++) for (i = 0; i < NUM_FIGHTERS; i++)
{ {
self = &fighters[i]; self = &fighters[i];
@ -263,7 +264,7 @@ static void drawFighters(void)
setAtlasColor(255, 255, 255, 255); setAtlasColor(255, 255, 255, 255);
for (i = 0 ; i < NUM_FIGHTERS ; i++) for (i = 0; i < NUM_FIGHTERS; i++)
{ {
blit(fighters[i].texture, fighters[i].x, fighters[i].y, 1); blit(fighters[i].texture, fighters[i].x, fighters[i].y, 1);
} }

View File

@ -18,19 +18,21 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h"
#include "trophies.h"
#include <time.h> #include <time.h>
#include "../common.h"
#include "../battle/entities.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "../system/lookup.h" #include "../system/atlas.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/io.h"
#include "../system/lookup.h"
#include "../system/sound.h"
#include "../system/text.h"
#include "../system/util.h" #include "../system/util.h"
#include "../system/widgets.h" #include "../system/widgets.h"
#include "../system/io.h" #include "trophies.h"
#include "../system/text.h"
#include "../system/atlas.h"
#include "../system/sound.h"
#include "../battle/entities.h"
#define TROPHIES_PER_PAGE 4 #define TROPHIES_PER_PAGE 4
@ -98,7 +100,7 @@ void initTrophiesDisplay(void)
boxWidth = total = awarded = 0; boxWidth = total = awarded = 0;
for (t = game.trophyHead.next ; t != NULL ; t = t->next) for (t = game.trophyHead.next; t != NULL; t = t->next)
{ {
total++; total++;
@ -183,7 +185,7 @@ void drawTrophies(void)
end = start + TROPHIES_PER_PAGE; end = start + TROPHIES_PER_PAGE;
i = 0; i = 0;
for (t = game.trophyHead.next ; t != NULL ; t = t->next) for (t = game.trophyHead.next; t != NULL; t = t->next)
{ {
if (i >= start && i < end) if (i >= start && i < end)
{ {
@ -234,7 +236,7 @@ void awardTrophy(char *id)
numRemaining = 0; numRemaining = 0;
for (t = game.trophyHead.next ; t != NULL ; t = t->next) for (t = game.trophyHead.next; t != NULL; t = t->next)
{ {
if (!t->awarded && strcmp(t->id, id) == 0) if (!t->awarded && strcmp(t->id, id) == 0)
{ {
@ -293,7 +295,7 @@ static void nextAlert(void)
int w, h; int w, h;
Trophy *t; Trophy *t;
for (t = game.trophyHead.next ; t != NULL ; t = t->next) for (t = game.trophyHead.next; t != NULL; t = t->next)
{ {
if (t->notify) if (t->notify)
{ {
@ -356,7 +358,7 @@ Trophy *getTrophy(char *id)
{ {
Trophy *t; Trophy *t;
for (t = game.trophyHead.next ; t != NULL ; t = t->next) for (t = game.trophyHead.next; t != NULL; t = t->next)
{ {
if (strcmp(t->id, id) == 0) if (strcmp(t->id, id) == 0)
{ {
@ -383,7 +385,7 @@ static void loadTrophyData(char *filename)
memset(count, 0, sizeof(int) * TROPHY_MAX); memset(count, 0, sizeof(int) * TROPHY_MAX);
for (node = root->child ; node != NULL ; node = node->next) for (node = root->child; node != NULL; node = node->next)
{ {
if (cJSON_GetObjectItem(node, "id")->valuestring[0] != '_') if (cJSON_GetObjectItem(node, "id")->valuestring[0] != '_')
{ {
@ -424,7 +426,7 @@ void awardStatsTrophies(void)
Trophy *t; Trophy *t;
Tuple *tp; Tuple *tp;
for (t = game.trophyHead.next ; t != NULL ; t = t->next) for (t = game.trophyHead.next; t != NULL; t = t->next)
{ {
if (t->stat != -1 && !t->awarded && (game.stats[t->stat] + battle.stats[t->stat]) >= t->statValue) if (t->stat != -1 && !t->awarded && (game.stats[t->stat] + battle.stats[t->stat]) >= t->statValue)
{ {
@ -433,7 +435,7 @@ void awardStatsTrophies(void)
} }
/* check to see if we've destroyed one of each common starfighter */ /* check to see if we've destroyed one of each common starfighter */
for (tp = game.fighterStatHead.next ; tp != NULL ; tp = tp->next) for (tp = game.fighterStatHead.next; tp != NULL; tp = tp->next)
{ {
if (tp->value == 0) if (tp->value == 0)
{ {
@ -457,7 +459,7 @@ void awardCampaignTrophies(void)
} }
/* check if all star system missions are completed */ /* check if all star system missions are completed */
for (starSystem = game.starSystemHead.next ; starSystem != NULL ; starSystem = starSystem->next) for (starSystem = game.starSystemHead.next; starSystem != NULL; starSystem = starSystem->next)
{ {
if (starSystem->totalMissions && starSystem->completedMissions == starSystem->totalMissions) if (starSystem->totalMissions && starSystem->completedMissions == starSystem->totalMissions)
{ {
@ -465,7 +467,7 @@ void awardCampaignTrophies(void)
len = strlen(starSystem->name); len = strlen(starSystem->name);
for (i = 0 ; i < len ; i++) for (i = 0; i < len; i++)
{ {
name[i] = toupper(starSystem->name[i]); name[i] = toupper(starSystem->name[i]);
} }

File diff suppressed because it is too large Load Diff

View File

@ -40,9 +40,10 @@ extern "C"
#define cJSON_IsReference 256 #define cJSON_IsReference 256
#define cJSON_StringIsConst 512 #define cJSON_StringIsConst 512
/* The cJSON structure: */ /* The cJSON structure: */
typedef struct cJSON { typedef struct cJSON
struct cJSON *next,*prev; /* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */ {
struct cJSON *next, *prev; /* next/prev allow you to walk array/object chains. Alternatively, use GetArraySize/GetArrayItem/GetObjectItem */
struct cJSON *child; /* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */ struct cJSON *child; /* An array or object item will have a child pointer pointing to a chain of the items in the array/object. */
int type; /* The type of the item, as above. */ int type; /* The type of the item, as above. */
@ -52,94 +53,95 @@ typedef struct cJSON {
double valuedouble; /* The item's number, if type==cJSON_Number */ double valuedouble; /* The item's number, if type==cJSON_Number */
char *string; /* The item's name string, if this item is the child of, or is in the list of subitems of an object. */ char *string; /* The item's name string, if this item is the child of, or is in the list of subitems of an object. */
} cJSON; } cJSON;
typedef struct cJSON_Hooks { typedef struct cJSON_Hooks
{
void *(*malloc_fn)(size_t sz); void *(*malloc_fn)(size_t sz);
void (*free_fn)(void *ptr); void (*free_fn)(void *ptr);
} cJSON_Hooks; } cJSON_Hooks;
/* Supply malloc, realloc and free functions to cJSON */ /* Supply malloc, realloc and free functions to cJSON */
extern void cJSON_InitHooks(cJSON_Hooks* hooks); extern void cJSON_InitHooks(cJSON_Hooks *hooks);
/* Supply a block of JSON, and this returns a cJSON object you can interrogate. Call cJSON_Delete when finished. */ /* Supply a block of JSON, and this returns a cJSON object you can interrogate. Call cJSON_Delete when finished. */
extern cJSON *cJSON_Parse(const char *value); extern cJSON *cJSON_Parse(const char *value);
/* Render a cJSON entity to text for transfer/storage. Free the char* when finished. */ /* Render a cJSON entity to text for transfer/storage. Free the char* when finished. */
extern char *cJSON_Print(cJSON *item); extern char *cJSON_Print(cJSON *item);
/* Render a cJSON entity to text for transfer/storage without any formatting. Free the char* when finished. */ /* Render a cJSON entity to text for transfer/storage without any formatting. Free the char* when finished. */
extern char *cJSON_PrintUnformatted(cJSON *item); extern char *cJSON_PrintUnformatted(cJSON *item);
/* Render a cJSON entity to text using a buffered strategy. prebuffer is a guess at the final size. guessing well reduces reallocation. fmt=0 gives unformatted, =1 gives formatted */ /* Render a cJSON entity to text using a buffered strategy. prebuffer is a guess at the final size. guessing well reduces reallocation. fmt=0 gives unformatted, =1 gives formatted */
extern char *cJSON_PrintBuffered(cJSON *item,int prebuffer,int fmt); extern char *cJSON_PrintBuffered(cJSON *item, int prebuffer, int fmt);
/* Delete a cJSON entity and all subentities. */ /* Delete a cJSON entity and all subentities. */
extern void cJSON_Delete(cJSON *c); extern void cJSON_Delete(cJSON *c);
/* Returns the number of items in an array (or object). */ /* Returns the number of items in an array (or object). */
extern int cJSON_GetArraySize(cJSON *array); extern int cJSON_GetArraySize(cJSON *array);
/* Retrieve item number "item" from array "array". Returns NULL if unsuccessful. */ /* Retrieve item number "item" from array "array". Returns NULL if unsuccessful. */
extern cJSON *cJSON_GetArrayItem(cJSON *array,int item); extern cJSON *cJSON_GetArrayItem(cJSON *array, int item);
/* Get item "string" from object. Case insensitive. */ /* Get item "string" from object. Case insensitive. */
extern cJSON *cJSON_GetObjectItem(cJSON *object,const char *string); extern cJSON *cJSON_GetObjectItem(cJSON *object, const char *string);
/* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */ /* For analysing failed parses. This returns a pointer to the parse error. You'll probably need to look a few chars back to make sense of it. Defined when cJSON_Parse() returns 0. 0 when cJSON_Parse() succeeds. */
extern const char *cJSON_GetErrorPtr(void); extern const char *cJSON_GetErrorPtr(void);
/* These calls create a cJSON item of the appropriate type. */ /* These calls create a cJSON item of the appropriate type. */
extern cJSON *cJSON_CreateNull(void); extern cJSON *cJSON_CreateNull(void);
extern cJSON *cJSON_CreateTrue(void); extern cJSON *cJSON_CreateTrue(void);
extern cJSON *cJSON_CreateFalse(void); extern cJSON *cJSON_CreateFalse(void);
extern cJSON *cJSON_CreateBool(int b); extern cJSON *cJSON_CreateBool(int b);
extern cJSON *cJSON_CreateNumber(double num); extern cJSON *cJSON_CreateNumber(double num);
extern cJSON *cJSON_CreateString(const char *string); extern cJSON *cJSON_CreateString(const char *string);
extern cJSON *cJSON_CreateArray(void); extern cJSON *cJSON_CreateArray(void);
extern cJSON *cJSON_CreateObject(void); extern cJSON *cJSON_CreateObject(void);
/* These utilities create an Array of count items. */ /* These utilities create an Array of count items. */
extern cJSON *cJSON_CreateIntArray(const int *numbers,int count); extern cJSON *cJSON_CreateIntArray(const int *numbers, int count);
extern cJSON *cJSON_CreateFloatArray(const float *numbers,int count); extern cJSON *cJSON_CreateFloatArray(const float *numbers, int count);
extern cJSON *cJSON_CreateDoubleArray(const double *numbers,int count); extern cJSON *cJSON_CreateDoubleArray(const double *numbers, int count);
extern cJSON *cJSON_CreateStringArray(const char **strings,int count); extern cJSON *cJSON_CreateStringArray(const char **strings, int count);
/* Append item to the specified array/object. */ /* Append item to the specified array/object. */
extern void cJSON_AddItemToArray(cJSON *array, cJSON *item); extern void cJSON_AddItemToArray(cJSON *array, cJSON *item);
extern void cJSON_AddItemToObject(cJSON *object,const char *string,cJSON *item); extern void cJSON_AddItemToObject(cJSON *object, const char *string, cJSON *item);
extern void cJSON_AddItemToObjectCS(cJSON *object,const char *string,cJSON *item); /* Use this when string is definitely const (i.e. a literal, or as good as), and will definitely survive the cJSON object */ extern void cJSON_AddItemToObjectCS(cJSON *object, const char *string, cJSON *item); /* Use this when string is definitely const (i.e. a literal, or as good as), and will definitely survive the cJSON object */
/* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don't want to corrupt your existing cJSON. */ /* Append reference to item to the specified array/object. Use this when you want to add an existing cJSON to a new cJSON, but don't want to corrupt your existing cJSON. */
extern void cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item); extern void cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item);
extern void cJSON_AddItemReferenceToObject(cJSON *object,const char *string,cJSON *item); extern void cJSON_AddItemReferenceToObject(cJSON *object, const char *string, cJSON *item);
/* Remove/Detatch items from Arrays/Objects. */ /* Remove/Detatch items from Arrays/Objects. */
extern cJSON *cJSON_DetachItemFromArray(cJSON *array,int which); extern cJSON *cJSON_DetachItemFromArray(cJSON *array, int which);
extern void cJSON_DeleteItemFromArray(cJSON *array,int which); extern void cJSON_DeleteItemFromArray(cJSON *array, int which);
extern cJSON *cJSON_DetachItemFromObject(cJSON *object,const char *string); extern cJSON *cJSON_DetachItemFromObject(cJSON *object, const char *string);
extern void cJSON_DeleteItemFromObject(cJSON *object,const char *string); extern void cJSON_DeleteItemFromObject(cJSON *object, const char *string);
/* Update array items. */ /* Update array items. */
extern void cJSON_InsertItemInArray(cJSON *array,int which,cJSON *newitem); /* Shifts pre-existing items to the right. */ extern void cJSON_InsertItemInArray(cJSON *array, int which, cJSON *newitem); /* Shifts pre-existing items to the right. */
extern void cJSON_ReplaceItemInArray(cJSON *array,int which,cJSON *newitem); extern void cJSON_ReplaceItemInArray(cJSON *array, int which, cJSON *newitem);
extern void cJSON_ReplaceItemInObject(cJSON *object,const char *string,cJSON *newitem); extern void cJSON_ReplaceItemInObject(cJSON *object, const char *string, cJSON *newitem);
/* Duplicate a cJSON item */ /* Duplicate a cJSON item */
extern cJSON *cJSON_Duplicate(cJSON *item,int recurse); extern cJSON *cJSON_Duplicate(cJSON *item, int recurse);
/* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will /* Duplicate will create a new, identical cJSON item to the one you pass, in new memory that will
need to be released. With recurse!=0, it will duplicate any children connected to the item. need to be released. With recurse!=0, it will duplicate any children connected to the item.
The item->next and ->prev pointers are always zero on return from Duplicate. */ The item->next and ->prev pointers are always zero on return from Duplicate. */
/* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */ /* ParseWithOpts allows you to require (and check) that the JSON is null terminated, and to retrieve the pointer to the final byte parsed. */
extern cJSON *cJSON_ParseWithOpts(const char *value,const char **return_parse_end,int require_null_terminated); extern cJSON *cJSON_ParseWithOpts(const char *value, const char **return_parse_end, int require_null_terminated);
extern void cJSON_Minify(char *json); extern void cJSON_Minify(char *json);
/* Macros for creating things quickly. */ /* Macros for creating things quickly. */
#define cJSON_AddNullToObject(object,name) cJSON_AddItemToObject(object, name, cJSON_CreateNull()) #define cJSON_AddNullToObject(object, name) cJSON_AddItemToObject(object, name, cJSON_CreateNull())
#define cJSON_AddTrueToObject(object,name) cJSON_AddItemToObject(object, name, cJSON_CreateTrue()) #define cJSON_AddTrueToObject(object, name) cJSON_AddItemToObject(object, name, cJSON_CreateTrue())
#define cJSON_AddFalseToObject(object,name) cJSON_AddItemToObject(object, name, cJSON_CreateFalse()) #define cJSON_AddFalseToObject(object, name) cJSON_AddItemToObject(object, name, cJSON_CreateFalse())
#define cJSON_AddBoolToObject(object,name,b) cJSON_AddItemToObject(object, name, cJSON_CreateBool(b)) #define cJSON_AddBoolToObject(object, name, b) cJSON_AddItemToObject(object, name, cJSON_CreateBool(b))
#define cJSON_AddNumberToObject(object,name,n) cJSON_AddItemToObject(object, name, cJSON_CreateNumber(n)) #define cJSON_AddNumberToObject(object, name, n) cJSON_AddItemToObject(object, name, cJSON_CreateNumber(n))
#define cJSON_AddStringToObject(object,name,s) cJSON_AddItemToObject(object, name, cJSON_CreateString(s)) #define cJSON_AddStringToObject(object, name, s) cJSON_AddItemToObject(object, name, cJSON_CreateString(s))
/* When assigning an integer value, it needs to be propagated to valuedouble too. */ /* When assigning an integer value, it needs to be propagated to valuedouble too. */
#define cJSON_SetIntValue(object,val) ((object)?(object)->valueint=(object)->valuedouble=(val):(val)) #define cJSON_SetIntValue(object, val) ((object) ? (object)->valueint = (object)->valuedouble = (val) : (val))
#define cJSON_SetNumberValue(object,val) ((object)?(object)->valueint=(object)->valuedouble=(val):(val)) #define cJSON_SetNumberValue(object, val) ((object) ? (object)->valueint = (object)->valuedouble = (val) : (val))
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -18,24 +18,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "common.h"
#include "main.h"
#include <time.h> #include <time.h>
#include "game/load.h"
#include "system/lookup.h" #include "common.h"
#include "system/draw.h"
#include "game/credits.h" #include "game/credits.h"
#include "system/input.h" #include "game/load.h"
#include "system/controls.h" #include "game/save.h"
#include "game/title.h" #include "game/title.h"
#include "game/trophies.h" #include "game/trophies.h"
#include "main.h"
#include "plat/win32/win32Init.h"
#include "system/controls.h"
#include "system/dev.h"
#include "system/draw.h"
#include "system/init.h"
#include "system/input.h"
#include "system/io.h"
#include "system/lookup.h"
#include "system/modalDialog.h" #include "system/modalDialog.h"
#include "test/testMission.h" #include "test/testMission.h"
#include "game/save.h"
#include "system/io.h"
#include "system/dev.h"
#include "system/init.h"
#include "plat/win32/win32Init.h"
App app; App app;
Battle battle; Battle battle;
@ -191,7 +193,7 @@ static void handleLoggingArgs(int argc, char *argv[])
SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN); SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN);
for (i = 1 ; i < argc ; i++) for (i = 1; i < argc; i++)
{ {
if (strcmp(argv[i], "-debug") == 0) if (strcmp(argv[i], "-debug") == 0)
{ {
@ -213,7 +215,7 @@ static void handleMissionArgs(int argc, char *argv[])
showCredits = testingMission = 0; showCredits = testingMission = 0;
for (i = 1 ; i < argc ; i++) for (i = 1; i < argc; i++)
{ {
/* assume this is filename for testing */ /* assume this is filename for testing */
if (strcmp(argv[i], "-mission") == 0) if (strcmp(argv[i], "-mission") == 0)

View File

@ -18,12 +18,14 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../../common.h"
#include "unixInit.h"
#include <sys/stat.h>
#include <pwd.h>
#include <unistd.h>
#include <errno.h> #include <errno.h>
#include <pwd.h>
#include <sys/stat.h>
#include <unistd.h>
#include "../../common.h"
#include "unixInit.h"
extern App app; extern App app;
extern Dev dev; extern Dev dev;
@ -44,7 +46,7 @@ void createSaveFolder(void)
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "User home = %s", userHome); SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO, "User home = %s", userHome);
sprintf(dir, "%s/.local/share/tbftss", userHome); sprintf(dir, "%s/.local/share/tbftss", userHome);
if (mkdir(dir, S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH) != 0 && errno != EEXIST) if (mkdir(dir, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0 && errno != EEXIST)
{ {
SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN, "Failed to create save dir '%s'. Will save to current dir.", dir); SDL_LogMessage(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_WARN, "Failed to create save dir '%s'. Will save to current dir.", dir);
return; return;
@ -55,7 +57,7 @@ void createSaveFolder(void)
void createScreenshotFolder(void) void createScreenshotFolder(void)
{ {
mkdir("/tmp/tbftss", S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH); mkdir("/tmp/tbftss", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
dev.screenshotFolder = "/tmp/tbftss"; dev.screenshotFolder = "/tmp/tbftss";
} }

View File

@ -18,11 +18,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../../common.h" #include <errno.h>
#include "win32Init.h"
#include <sys/stat.h> #include <sys/stat.h>
#include <unistd.h> #include <unistd.h>
#include <errno.h>
#include "../../common.h"
#include "win32Init.h"
extern App app; extern App app;
extern Dev dev; extern Dev dev;

View File

@ -44,7 +44,8 @@ typedef struct Credit Credit;
typedef struct AtlasImage AtlasImage; typedef struct AtlasImage AtlasImage;
typedef struct Font Font; typedef struct Font Font;
typedef struct { typedef struct
{
int debug; int debug;
int takeScreenshots; int takeScreenshots;
char *screenshotFolder; char *screenshotFolder;
@ -57,12 +58,14 @@ typedef struct {
int fps; int fps;
} Dev; } Dev;
typedef struct { typedef struct
{
float x; float x;
float y; float y;
} PointF; } PointF;
struct Texture { struct Texture
{
char name[MAX_DESCRIPTION_LENGTH]; char name[MAX_DESCRIPTION_LENGTH];
long hash; long hash;
long ttl; long ttl;
@ -70,14 +73,16 @@ struct Texture {
Texture *next; Texture *next;
}; };
struct AtlasImage { struct AtlasImage
{
char filename[MAX_FILENAME_LENGTH]; char filename[MAX_FILENAME_LENGTH];
SDL_Rect rect; SDL_Rect rect;
SDL_Texture *texture; SDL_Texture *texture;
AtlasImage *next; AtlasImage *next;
}; };
typedef struct { typedef struct
{
void (*logic)(void); void (*logic)(void);
void (*draw)(void); void (*draw)(void);
void (*handleClick)(int x, int y, int btn); void (*handleClick)(int x, int y, int btn);
@ -85,18 +90,21 @@ typedef struct {
void (*handleMouseUp)(int x, int y, int btn); void (*handleMouseUp)(int x, int y, int btn);
} Delegate; } Delegate;
typedef struct { typedef struct
{
int type; int type;
char message[MAX_DESCRIPTION_LENGTH]; char message[MAX_DESCRIPTION_LENGTH];
} ModalDialog; } ModalDialog;
struct Lookup { struct Lookup
{
char name[MAX_NAME_LENGTH]; char name[MAX_NAME_LENGTH];
long value; long value;
Lookup *next; Lookup *next;
}; };
struct Weapon { struct Weapon
{
int type; int type;
int ammo; int ammo;
int maxAmmo; int maxAmmo;
@ -104,7 +112,8 @@ struct Weapon {
int y; int y;
}; };
struct Entity { struct Entity
{
int type; int type;
char name[MAX_NAME_LENGTH]; char name[MAX_NAME_LENGTH];
char defName[MAX_NAME_LENGTH]; char defName[MAX_NAME_LENGTH];
@ -166,7 +175,8 @@ struct Entity {
Entity *next; Entity *next;
}; };
struct Bullet { struct Bullet
{
int type; int type;
float x; float x;
float y; float y;
@ -185,7 +195,8 @@ struct Bullet {
Bullet *next; Bullet *next;
}; };
struct Debris { struct Debris
{
float x; float x;
float y; float y;
float dx; float dx;
@ -197,13 +208,15 @@ struct Debris {
Debris *next; Debris *next;
}; };
typedef struct { typedef struct
{
float x; float x;
float y; float y;
float speed; float speed;
} Star; } Star;
struct Pulse { struct Pulse
{
int x; int x;
int y; int y;
float size; float size;
@ -212,7 +225,8 @@ struct Pulse {
Pulse *next; Pulse *next;
}; };
struct Effect { struct Effect
{
int type; int type;
float x; float x;
float y; float y;
@ -229,7 +243,8 @@ struct Effect {
Effect *next; Effect *next;
}; };
struct Location { struct Location
{
int active; int active;
char name[MAX_NAME_LENGTH]; char name[MAX_NAME_LENGTH];
int x; int x;
@ -238,7 +253,8 @@ struct Location {
Location *next; Location *next;
}; };
struct Objective { struct Objective
{
int active; int active;
char id[MAX_DESCRIPTION_LENGTH]; char id[MAX_DESCRIPTION_LENGTH];
char description[MAX_DESCRIPTION_LENGTH]; char description[MAX_DESCRIPTION_LENGTH];
@ -253,14 +269,16 @@ struct Objective {
Objective *next; Objective *next;
}; };
struct Challenge { struct Challenge
{
int type; int type;
int value; int value;
int passed; int passed;
Challenge *next; Challenge *next;
}; };
typedef struct { typedef struct
{
int isChallenge; int isChallenge;
int timeLimit; int timeLimit;
int killLimit; int killLimit;
@ -283,7 +301,8 @@ typedef struct {
Challenge *challenges[MAX_CHALLENGES]; Challenge *challenges[MAX_CHALLENGES];
} ChallengeData; } ChallengeData;
struct Mission { struct Mission
{
char name[MAX_NAME_LENGTH]; char name[MAX_NAME_LENGTH];
char description[MAX_DESCRIPTION_LENGTH]; char description[MAX_DESCRIPTION_LENGTH];
char filename[MAX_DESCRIPTION_LENGTH]; char filename[MAX_DESCRIPTION_LENGTH];
@ -304,7 +323,8 @@ struct Mission {
Mission *next; Mission *next;
}; };
struct StarSystem { struct StarSystem
{
char name[MAX_NAME_LENGTH]; char name[MAX_NAME_LENGTH];
char description[MAX_DESCRIPTION_LENGTH]; char description[MAX_DESCRIPTION_LENGTH];
int side; int side;
@ -320,7 +340,8 @@ struct StarSystem {
StarSystem *next; StarSystem *next;
}; };
struct Quadtree { struct Quadtree
{
int depth; int depth;
int x, y, w, h; int x, y, w, h;
Entity **ents; Entity **ents;
@ -330,7 +351,8 @@ struct Quadtree {
Quadtree *node[4]; Quadtree *node[4];
}; };
struct Spawner { struct Spawner
{
char name[MAX_NAME_LENGTH]; char name[MAX_NAME_LENGTH];
char **types; char **types;
int numTypes; int numTypes;
@ -346,7 +368,8 @@ struct Spawner {
Spawner *next; Spawner *next;
}; };
typedef struct { typedef struct
{
SDL_Point camera; SDL_Point camera;
int numAllies; int numAllies;
int numEnemies; int numEnemies;
@ -397,14 +420,16 @@ typedef struct {
Quadtree quadtree; Quadtree quadtree;
} Battle; } Battle;
struct ScriptRunner { struct ScriptRunner
{
struct cJSON *line; struct cJSON *line;
long delay; long delay;
int waitForMessageBox; int waitForMessageBox;
ScriptRunner *next; ScriptRunner *next;
}; };
struct Trophy { struct Trophy
{
char id[MAX_NAME_LENGTH]; char id[MAX_NAME_LENGTH];
char title[MAX_DESCRIPTION_LENGTH]; char title[MAX_DESCRIPTION_LENGTH];
char description[MAX_DESCRIPTION_LENGTH]; char description[MAX_DESCRIPTION_LENGTH];
@ -419,20 +444,23 @@ struct Trophy {
Trophy *next; Trophy *next;
}; };
typedef struct { typedef struct
{
int friendlyFire; int friendlyFire;
int autoSwitchPlayerTarget; int autoSwitchPlayerTarget;
int missileReTarget; int missileReTarget;
int healthBars; int healthBars;
} Gameplay; } Gameplay;
struct Tuple { struct Tuple
{
char key[MAX_NAME_LENGTH]; char key[MAX_NAME_LENGTH];
int value; int value;
Tuple *next; Tuple *next;
}; };
typedef struct { typedef struct
{
StarSystem starSystemHead; StarSystem starSystemHead;
Mission challengeMissionHead; Mission challengeMissionHead;
Mission *currentMission; Mission *currentMission;
@ -447,7 +475,8 @@ typedef struct {
Tuple fighterStatHead; Tuple fighterStatHead;
} Game; } Game;
struct Widget { struct Widget
{
char name[MAX_NAME_LENGTH]; char name[MAX_NAME_LENGTH];
char group[MAX_NAME_LENGTH]; char group[MAX_NAME_LENGTH];
int type; int type;
@ -466,14 +495,16 @@ struct Widget {
Widget *next; Widget *next;
}; };
struct HudMessage { struct HudMessage
{
char message[MAX_DESCRIPTION_LENGTH]; char message[MAX_DESCRIPTION_LENGTH];
SDL_Color color; SDL_Color color;
int life; int life;
HudMessage *next; HudMessage *next;
}; };
struct MessageBox { struct MessageBox
{
char title[MAX_NAME_LENGTH]; char title[MAX_NAME_LENGTH];
char body[MAX_DESCRIPTION_LENGTH]; char body[MAX_DESCRIPTION_LENGTH];
int time; int time;
@ -482,7 +513,8 @@ struct MessageBox {
MessageBox *next; MessageBox *next;
}; };
typedef struct { typedef struct
{
int x; int x;
int y; int y;
int w; int w;
@ -492,7 +524,8 @@ typedef struct {
int button[MAX_MOUSE_BUTTONS]; int button[MAX_MOUSE_BUTTONS];
} Mouse; } Mouse;
typedef struct { typedef struct
{
char saveDir[MAX_FILENAME_LENGTH]; char saveDir[MAX_FILENAME_LENGTH];
int saveGame; int saveGame;
int winWidth; int winWidth;
@ -522,7 +555,8 @@ typedef struct {
int textWidth; int textWidth;
} App; } App;
typedef struct { typedef struct
{
SDL_Color red; SDL_Color red;
SDL_Color orange; SDL_Color orange;
SDL_Color yellow; SDL_Color yellow;
@ -536,7 +570,8 @@ typedef struct {
SDL_Color darkGrey; SDL_Color darkGrey;
} Colors; } Colors;
struct Credit { struct Credit
{
char *text; char *text;
float y; float y;
int size; int size;
@ -544,28 +579,33 @@ struct Credit {
Credit *next; Credit *next;
}; };
struct Font { struct Font
{
char name[MAX_NAME_LENGTH]; char name[MAX_NAME_LENGTH];
SDL_Texture *texture; SDL_Texture *texture;
SDL_Rect glyphs[MAX_GLYPHS]; SDL_Rect glyphs[MAX_GLYPHS];
Font *next; Font *next;
}; };
struct Bucket { struct Bucket
{
char *key, *value; char *key, *value;
Bucket *next; Bucket *next;
}; };
typedef struct { typedef struct
{
Bucket **bucket; Bucket **bucket;
int *bucketCount; int *bucketCount;
} HashTable; } HashTable;
typedef struct { typedef struct
{
int32_t magicNumber, version, stringCount; int32_t magicNumber, version, stringCount;
int32_t originalOffset, translationOffset; int32_t originalOffset, translationOffset;
} MOHeader; } MOHeader;
typedef struct { typedef struct
{
int32_t length, offset; int32_t length, offset;
} MOEntry; } MOEntry;

View File

@ -19,11 +19,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "atlas.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "../system/io.h" #include "../system/io.h"
#include "../system/textures.h" #include "../system/textures.h"
#include "../system/util.h" #include "../system/util.h"
#include "atlas.h"
static void loadAtlasData(void); static void loadAtlasData(void);
@ -52,7 +53,7 @@ AtlasImage *getAtlasImage(const char *filename)
i = hashcode(filename) % NUM_ATLAS_BUCKETS; i = hashcode(filename) % NUM_ATLAS_BUCKETS;
for (a = atlases[i].next ; a != NULL ; a = a->next) for (a = atlases[i].next; a != NULL; a = a->next)
{ {
if (strcmp(a->filename, filename) == 0) if (strcmp(a->filename, filename) == 0)
{ {
@ -75,9 +76,9 @@ char **getAtlasFileList(char *dir, int *count)
i = 0; i = 0;
filenames = NULL; filenames = NULL;
for (bucket = 0 ; bucket < NUM_ATLAS_BUCKETS ; bucket++) for (bucket = 0; bucket < NUM_ATLAS_BUCKETS; bucket++)
{ {
for (a = atlases[bucket].next ; a != NULL ; a = a->next) for (a = atlases[bucket].next; a != NULL; a = a->next)
{ {
if (strncmp(dir, a->filename, strlen(dir)) == 0) if (strncmp(dir, a->filename, strlen(dir)) == 0)
{ {
@ -88,14 +89,14 @@ char **getAtlasFileList(char *dir, int *count)
if (i > 0) if (i > 0)
{ {
filenames = malloc(sizeof(char*) * i); filenames = malloc(sizeof(char *) * i);
memset(filenames, 0, sizeof(char*) * i); memset(filenames, 0, sizeof(char *) * i);
i = 0; i = 0;
for (bucket = 0 ; bucket < NUM_ATLAS_BUCKETS ; bucket++) for (bucket = 0; bucket < NUM_ATLAS_BUCKETS; bucket++)
{ {
for (a = atlases[bucket].next ; a != NULL ; a = a->next) for (a = atlases[bucket].next; a != NULL; a = a->next)
{ {
if (strncmp(dir, a->filename, strlen(dir)) == 0) if (strncmp(dir, a->filename, strlen(dir)) == 0)
{ {
@ -113,7 +114,7 @@ char **getAtlasFileList(char *dir, int *count)
if (filenames) if (filenames)
{ {
qsort(filenames, i, sizeof(char*), stringComparator); qsort(filenames, i, sizeof(char *), stringComparator);
} }
return filenames; return filenames;
@ -131,7 +132,7 @@ static void loadAtlasData(void)
root = cJSON_Parse(text); root = cJSON_Parse(text);
for (node = root->child ; node != NULL ; node = node->next) for (node = root->child; node != NULL; node = node->next)
{ {
filename = cJSON_GetObjectItem(node, "filename")->valuestring; filename = cJSON_GetObjectItem(node, "filename")->valuestring;
x = cJSON_GetObjectItem(node, "x")->valueint; x = cJSON_GetObjectItem(node, "x")->valueint;

View File

@ -19,12 +19,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "controls.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "../system/text.h"
#include "../system/lookup.h"
#include "../system/widgets.h"
#include "../system/io.h" #include "../system/io.h"
#include "../system/lookup.h"
#include "../system/text.h"
#include "../system/widgets.h"
#include "controls.h"
extern App app; extern App app;
extern Colors colors; extern Colors colors;
@ -55,11 +56,11 @@ void initControls(void)
controlName[CONTROL_PREV_FIGHTER] = _("Previous Fighter"); controlName[CONTROL_PREV_FIGHTER] = _("Previous Fighter");
controlName[CONTROL_SCREENSHOT] = _("Screenshot"); controlName[CONTROL_SCREENSHOT] = _("Screenshot");
for (i = 0 ; i < CONTROL_MAX ; i++) for (i = 0; i < CONTROL_MAX; i++)
{ {
controlWidget[i] = getWidget(getLookupName("CONTROL_", i), "controls"); controlWidget[i] = getWidget(getLookupName("CONTROL_", i), "controls");
controlWidget[i]->numOptions = 2; controlWidget[i]->numOptions = 2;
controlWidget[i]->options = malloc(2 * sizeof(char*)); controlWidget[i]->options = malloc(2 * sizeof(char *));
controlWidget[i]->options[0] = malloc(sizeof(char) * MAX_NAME_LENGTH); controlWidget[i]->options[0] = malloc(sizeof(char) * MAX_NAME_LENGTH);
controlWidget[i]->options[1] = malloc(sizeof(char) * MAX_NAME_LENGTH); controlWidget[i]->options[1] = malloc(sizeof(char) * MAX_NAME_LENGTH);
strcpy(controlWidget[i]->options[0], ""); strcpy(controlWidget[i]->options[0], "");
@ -76,7 +77,7 @@ void initControlsDisplay(void)
{ {
int i; int i;
for (i = 0 ; i < CONTROL_MAX ; i++) for (i = 0; i < CONTROL_MAX; i++)
{ {
strcpy(controlWidget[i]->options[0], ""); strcpy(controlWidget[i]->options[0], "");
strcpy(controlWidget[i]->options[1], ""); strcpy(controlWidget[i]->options[1], "");
@ -105,7 +106,7 @@ int isControl(int type)
int isAcceptControl(void) int isAcceptControl(void)
{ {
return (app.keyboard[SDL_SCANCODE_SPACE] ||app.keyboard[SDL_SCANCODE_RETURN] || isControl(CONTROL_FIRE)); return (app.keyboard[SDL_SCANCODE_SPACE] || app.keyboard[SDL_SCANCODE_RETURN] || isControl(CONTROL_FIRE));
} }
void clearControl(int type) void clearControl(int type)
@ -186,7 +187,7 @@ void drawControls(void)
r.x += 25; r.x += 25;
r.y = 125; r.y = 125;
for (i = 0 ; i < CONTROL_MAX ; i++) for (i = 0; i < CONTROL_MAX; i++)
{ {
drawText(r.x, r.y + 2, 20, TA_LEFT, colors.white, controlName[i]); drawText(r.x, r.y + 2, 20, TA_LEFT, colors.white, controlName[i]);
@ -222,7 +223,7 @@ static void restoreDefaults(void)
cJSON *root, *controlsJSON, *node; cJSON *root, *controlsJSON, *node;
char *text; char *text;
text = readFile("data/app/"CONFIG_FILENAME); text = readFile("data/app/" CONFIG_FILENAME);
root = cJSON_Parse(text); root = cJSON_Parse(text);

View File

@ -19,8 +19,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "dev.h"
#include "../galaxy/mission.h" #include "../galaxy/mission.h"
#include "dev.h"
extern App app; extern App app;
extern Battle battle; extern Battle battle;

View File

@ -19,10 +19,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "draw.h"
#include "../system/input.h"
#include "../system/text.h" #include "../system/text.h"
#include "../system/util.h" #include "../system/util.h"
#include "../system/input.h" #include "draw.h"
extern App app; extern App app;
extern Battle battle; extern Battle battle;
@ -172,14 +173,22 @@ void drawCircle(int cx, int cy, int radius, int r, int g, int b, int a)
while (x >= y) while (x >= y)
{ {
p[0].x = x + cx; p[0].y = y + cy; p[0].x = x + cx;
p[1].x = y + cx; p[1].y = x + cy; p[0].y = y + cy;
p[2].x = -x + cx; p[2].y = y + cy; p[1].x = y + cx;
p[3].x = -y + cx; p[3].y = x + cy; p[1].y = x + cy;
p[4].x = -x + cx; p[4].y = -y + cy; p[2].x = -x + cx;
p[5].x = -y + cx; p[5].y = -x + cy; p[2].y = y + cy;
p[6].x = x + cx; p[6].y = -y + cy; p[3].x = -y + cx;
p[7].x = y + cx; p[7].y = -x + cy; p[3].y = x + cy;
p[4].x = -x + cx;
p[4].y = -y + cy;
p[5].x = -y + cx;
p[5].y = -x + cy;
p[6].x = x + cx;
p[6].y = -y + cy;
p[7].x = y + cx;
p[7].y = -x + cy;
SDL_RenderDrawPoints(app.renderer, p, 8); SDL_RenderDrawPoints(app.renderer, p, 8);
y++; y++;
@ -202,7 +211,7 @@ void scrollBackground(float x, float y)
{ {
int i; int i;
for (i = 0 ; i < 4 ; i++) for (i = 0; i < 4; i++)
{ {
backgroundPoint[i].x += x; backgroundPoint[i].x += x;
backgroundPoint[i].y += y; backgroundPoint[i].y += y;
@ -234,7 +243,7 @@ void drawBackground(SDL_Texture *texture)
int i; int i;
SDL_Rect dstRect; SDL_Rect dstRect;
for (i = 0 ; i < 4 ; i++) for (i = 0; i < 4; i++)
{ {
dstRect.x = backgroundPoint[i].x; dstRect.x = backgroundPoint[i].x;
dstRect.y = backgroundPoint[i].y; dstRect.y = backgroundPoint[i].y;

View File

@ -18,10 +18,10 @@ Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "i18n.h" #include "i18n.h"
#include "../system/io.h"
#ifdef _WIN32 #ifdef _WIN32
#include <windows.h> #include <windows.h>
#endif #endif
#define TABLE_SIZE 255 #define TABLE_SIZE 255
@ -36,16 +36,16 @@ void setLanguage(char *applicationName, char *languageCode)
{ {
char language[MAX_DESCRIPTION_LENGTH], c[MAX_LINE_LENGTH]; char language[MAX_DESCRIPTION_LENGTH], c[MAX_LINE_LENGTH];
char **key, **value; char **key, **value;
#ifndef _WIN32 #ifndef _WIN32
char *lang; char *lang;
#endif #endif
int i, swap; int i, swap;
FILE *fp; FILE *fp;
MOHeader header; MOHeader header;
MOEntry *original, *translation; MOEntry *original, *translation;
#if DEV == 1 #if DEV == 1
int read; int read;
#endif #endif
initTable(); initTable();
@ -53,7 +53,7 @@ void setLanguage(char *applicationName, char *languageCode)
if (languageCode == NULL) if (languageCode == NULL)
{ {
#ifdef _WIN32 #ifdef _WIN32
GetLocaleInfoA(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME, c, MAX_LINE_LENGTH); GetLocaleInfoA(LOCALE_USER_DEFAULT, LOCALE_SISO639LANGNAME, c, MAX_LINE_LENGTH);
if (c[0] != '\0') if (c[0] != '\0')
@ -69,12 +69,12 @@ void setLanguage(char *applicationName, char *languageCode)
strncat(language, c, MAX_DESCRIPTION_LENGTH - strlen(language) - 1); strncat(language, c, MAX_DESCRIPTION_LENGTH - strlen(language) - 1);
} }
} }
#else #else
if ((lang = getenv("LC_ALL")) || (lang = getenv("LC_CTYPE")) || (lang = getenv("LANG"))) if ((lang = getenv("LC_ALL")) || (lang = getenv("LC_CTYPE")) || (lang = getenv("LANG")))
{ {
STRNCPY(language, lang, MAX_DESCRIPTION_LENGTH); STRNCPY(language, lang, MAX_DESCRIPTION_LENGTH);
} }
#endif #endif
} }
else else
@ -88,17 +88,17 @@ void setLanguage(char *applicationName, char *languageCode)
sprintf(c, "%s/%s/LC_MESSAGES/%s.mo", LOCALE_DIR, language, applicationName); sprintf(c, "%s/%s/LC_MESSAGES/%s.mo", LOCALE_DIR, language, applicationName);
#if DEV == 1 #if DEV == 1
printf("Opening %s\n", c); printf("Opening %s\n", c);
#endif #endif
fp = fopen(c, "rb"); fp = fopen(c, "rb");
if (fp == NULL) if (fp == NULL)
{ {
#if DEV == 1 #if DEV == 1
printf("Failed to open %s/%s/LC_MESSAGES/%s.mo\n", LOCALE_DIR, language, applicationName); printf("Failed to open %s/%s/LC_MESSAGES/%s.mo\n", LOCALE_DIR, language, applicationName);
#endif #endif
if (strstr(language, "_") == NULL) if (strstr(language, "_") == NULL)
{ {
@ -111,17 +111,17 @@ void setLanguage(char *applicationName, char *languageCode)
sprintf(c, "%s/%s/LC_MESSAGES/%s.mo", LOCALE_DIR, language, applicationName); sprintf(c, "%s/%s/LC_MESSAGES/%s.mo", LOCALE_DIR, language, applicationName);
#if DEV == 1 #if DEV == 1
printf("Opening %s\n", c); printf("Opening %s\n", c);
#endif #endif
fp = fopen(c, "rb"); fp = fopen(c, "rb");
if (fp == NULL) if (fp == NULL)
{ {
#if DEV == 1 #if DEV == 1
printf("Failed to open %s/%s/LC_MESSAGES/%s.mo\n", LOCALE_DIR, language, applicationName); printf("Failed to open %s/%s/LC_MESSAGES/%s.mo\n", LOCALE_DIR, language, applicationName);
#endif #endif
return; return;
} }
@ -149,9 +149,9 @@ void setLanguage(char *applicationName, char *languageCode)
exit(1); exit(1);
} }
#if DEV == 1 #if DEV == 1
printf("MO file has %d entries\n", header.stringCount); printf("MO file has %d entries\n", header.stringCount);
#endif #endif
fseek(fp, header.originalOffset, SEEK_SET); fseek(fp, header.originalOffset, SEEK_SET);
@ -166,7 +166,7 @@ void setLanguage(char *applicationName, char *languageCode)
exit(1); exit(1);
} }
for (i=0;i<header.stringCount;i++) for (i = 0; i < header.stringCount; i++)
{ {
fread(&original[i].length, sizeof(int32_t), 1, fp); fread(&original[i].length, sizeof(int32_t), 1, fp);
fread(&original[i].offset, sizeof(int32_t), 1, fp); fread(&original[i].offset, sizeof(int32_t), 1, fp);
@ -189,7 +189,7 @@ void setLanguage(char *applicationName, char *languageCode)
fseek(fp, header.translationOffset, SEEK_SET); fseek(fp, header.translationOffset, SEEK_SET);
for (i=0;i<header.stringCount;i++) for (i = 0; i < header.stringCount; i++)
{ {
fread(&translation[i].length, sizeof(int32_t), 1, fp); fread(&translation[i].length, sizeof(int32_t), 1, fp);
fread(&translation[i].offset, sizeof(int32_t), 1, fp); fread(&translation[i].offset, sizeof(int32_t), 1, fp);
@ -210,7 +210,7 @@ void setLanguage(char *applicationName, char *languageCode)
} }
} }
for (i=0;i<header.stringCount;i++) for (i = 0; i < header.stringCount; i++)
{ {
fseek(fp, original[i].offset, SEEK_SET); fseek(fp, original[i].offset, SEEK_SET);
@ -219,7 +219,7 @@ void setLanguage(char *applicationName, char *languageCode)
key[i][original[i].length] = '\0'; key[i][original[i].length] = '\0';
} }
for (i=0;i<header.stringCount;i++) for (i = 0; i < header.stringCount; i++)
{ {
fseek(fp, translation[i].offset, SEEK_SET); fseek(fp, translation[i].offset, SEEK_SET);
@ -230,7 +230,7 @@ void setLanguage(char *applicationName, char *languageCode)
fclose(fp); fclose(fp);
for (i=0;i<header.stringCount;i++) for (i = 0; i < header.stringCount; i++)
{ {
put(key[i], value[i]); put(key[i], value[i]);
@ -247,10 +247,10 @@ void setLanguage(char *applicationName, char *languageCode)
free(translation); free(translation);
#if DEV == 1 #if DEV == 1
read = 0; read = 0;
for (i=0;i<TABLE_SIZE;i++) for (i = 0; i < TABLE_SIZE; i++)
{ {
if (table.bucketCount[i] != 0) if (table.bucketCount[i] != 0)
{ {
@ -259,7 +259,7 @@ void setLanguage(char *applicationName, char *languageCode)
} }
printf("Using %d of %d buckets (%d%%)\n", read, TABLE_SIZE, (read * 100) / TABLE_SIZE); printf("Using %d of %d buckets (%d%%)\n", read, TABLE_SIZE, (read * 100) / TABLE_SIZE);
#endif #endif
} }
static int hashCode(char *data) static int hashCode(char *data)
@ -271,7 +271,7 @@ static int hashCode(char *data)
hash = 0; hash = 0;
for (i=0;i<length;i++) for (i = 0; i < length; i++)
{ {
hash = data[i] + (hash << 5) - hash; hash = data[i] + (hash << 5) - hash;
} }
@ -294,7 +294,7 @@ static void initTable()
exit(1); exit(1);
} }
for (i=0;i<TABLE_SIZE;i++) for (i = 0; i < TABLE_SIZE; i++)
{ {
table.bucket[i] = malloc(sizeof(Bucket)); table.bucket[i] = malloc(sizeof(Bucket));
@ -309,9 +309,9 @@ static void put(char *key, char *value)
Bucket *bucket, *newBucket; Bucket *bucket, *newBucket;
unsigned int hash = hashCode(key); unsigned int hash = hashCode(key);
#if DEV == 1 #if DEV == 1
printf("%s = %d\n", key, hash); printf("%s = %d\n", key, hash);
#endif #endif
bucket = table.bucket[hash]; bucket = table.bucket[hash];
@ -356,7 +356,7 @@ char *getTranslatedString(char *key)
bucket = table.bucket[hash]->next; bucket = table.bucket[hash]->next;
for (;bucket!=NULL;bucket=bucket->next) for (; bucket != NULL; bucket = bucket->next)
{ {
if (strcasecmp(key, bucket->key) == 0) if (strcasecmp(key, bucket->key) == 0)
{ {
@ -372,11 +372,11 @@ void cleanupLanguage(void)
int i; int i;
Bucket *bucket, *p, *q; Bucket *bucket, *p, *q;
for (i=0;i<TABLE_SIZE;i++) for (i = 0; i < TABLE_SIZE; i++)
{ {
bucket = table.bucket[i]; bucket = table.bucket[i];
for (p=bucket->next;p!=NULL;p=q) for (p = bucket->next; p != NULL; p = q)
{ {
free(p->key); free(p->key);
free(p->value); free(p->value);

View File

@ -18,43 +18,45 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include <locale.h>
#include "init.h"
#include <SDL2/SDL_image.h> #include <SDL2/SDL_image.h>
#include "../json/cJSON.h"
#include <SDL2/SDL_mixer.h> #include <SDL2/SDL_mixer.h>
#include <SDL2/SDL_ttf.h> #include <SDL2/SDL_ttf.h>
#include "../game/credits.h"
#include "../system/widgets.h" #include "../common.h"
#include "../battle/bullets.h"
#include "../system/modalDialog.h"
#include "../system/io.h"
#include "../galaxy/starSystems.h"
#include "../system/draw.h"
#include "../battle/starfield.h"
#include "../system/util.h"
#include "../system/sound.h"
#include "../system/lookup.h"
#include "../challenges/challenges.h"
#include "../system/controls.h"
#include "../battle/fighters.h"
#include "../game/game.h"
#include "../battle/battle.h" #include "../battle/battle.h"
#include "../game/options.h" #include "../battle/bullets.h"
#include "../system/text.h"
#include "../system/i18n.h"
#include "../system/atlas.h"
#include "../system/resources.h"
#include "../battle/capitalShips.h" #include "../battle/capitalShips.h"
#include "../system/input.h" #include "../battle/fighters.h"
#include "../game/stats.h"
#include "../galaxy/galacticMap.h"
#include "../game/trophies.h"
#include "../game/fighterDatabase.h"
#include "../system/textures.h"
#include "../battle/items.h" #include "../battle/items.h"
#include "../battle/starfield.h"
#include "../challenges/challenges.h"
#include "../galaxy/galacticMap.h"
#include "../galaxy/starSystems.h"
#include "../game/credits.h"
#include "../game/fighterDatabase.h"
#include "../game/game.h"
#include "../game/options.h"
#include "../game/stats.h"
#include "../game/trophies.h"
#include "../json/cJSON.h"
#include "../plat/win32/win32Init.h" #include "../plat/win32/win32Init.h"
#include "locale.h" #include "../system/atlas.h"
#include "../system/controls.h"
#include "../system/draw.h"
#include "../system/i18n.h"
#include "../system/input.h"
#include "../system/io.h"
#include "../system/lookup.h"
#include "../system/modalDialog.h"
#include "../system/resources.h"
#include "../system/sound.h"
#include "../system/text.h"
#include "../system/textures.h"
#include "../system/util.h"
#include "../system/widgets.h"
#include "init.h"
extern App app; extern App app;
@ -70,7 +72,7 @@ void init18N(int argc, char *argv[])
setlocale(LC_NUMERIC, ""); setlocale(LC_NUMERIC, "");
for (i = 1 ; i < argc ; i++) for (i = 1; i < argc; i++)
{ {
if (strcmp(argv[i], "-language") == 0) if (strcmp(argv[i], "-language") == 0)
{ {
@ -115,7 +117,7 @@ void initSDL(int argc, char *argv[])
windowFlags |= SDL_WINDOW_FULLSCREEN; windowFlags |= SDL_WINDOW_FULLSCREEN;
} }
if (SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO) < 0) if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0)
{ {
printf("Couldn't initialize SDL: %s\n", SDL_GetError()); printf("Couldn't initialize SDL: %s\n", SDL_GetError());
exit(1); exit(1);
@ -162,35 +164,15 @@ void initSDL(int argc, char *argv[])
void initGameSystem(void) void initGameSystem(void)
{ {
int i, numInitFuns; int i, numInitFuns;
void (*initFuncs[]) (void) = { void (*initFuncs[])(void) = {initGraphics, initFonts, initResources, initSounds, initWidgets, initGame, loadFighterDefs, loadCapitalShipDefs, loadItemDefs, initBulletDefs, initStarSystems, initChallenges, initStats, initModalDialog, initStars, initControls, initTrophies, initFighterDatabase, updateCustomResolutionOption};
initGraphics,
initFonts,
initResources,
initSounds,
initWidgets,
initGame,
loadFighterDefs,
loadCapitalShipDefs,
loadItemDefs,
initBulletDefs,
initStarSystems,
initChallenges,
initStats,
initModalDialog,
initStars,
initControls,
initTrophies,
initFighterDatabase,
updateCustomResolutionOption
};
initAtlas(); initAtlas();
initInput(); initInput();
numInitFuns = sizeof(initFuncs) / sizeof(void*); numInitFuns = sizeof(initFuncs) / sizeof(void *);
for (i = 0 ; i < numInitFuns ; i++) for (i = 0; i < numInitFuns; i++)
{ {
showLoadingStep(i + 1, numInitFuns); showLoadingStep(i + 1, numInitFuns);
@ -234,7 +216,7 @@ static void loadConfig(int argc, char *argv[])
char *configFilename; char *configFilename;
/* load default config first */ /* load default config first */
loadConfigFile("data/app/"CONFIG_FILENAME); loadConfigFile("data/app/" CONFIG_FILENAME);
/* load saved config */ /* load saved config */
configFilename = getSaveFilePath(CONFIG_FILENAME); configFilename = getSaveFilePath(CONFIG_FILENAME);
@ -327,13 +309,13 @@ void saveConfig(void)
cJSON_AddNumberToObject(root, "vSync", app.vSync); cJSON_AddNumberToObject(root, "vSync", app.vSync);
keysJSON = cJSON_CreateObject(); keysJSON = cJSON_CreateObject();
for (i = 0 ; i < CONTROL_MAX ; i++) for (i = 0; i < CONTROL_MAX; i++)
{ {
cJSON_AddNumberToObject(keysJSON, getLookupName("CONTROL_", i), app.keyControls[i]); cJSON_AddNumberToObject(keysJSON, getLookupName("CONTROL_", i), app.keyControls[i]);
} }
mouseJSON = cJSON_CreateObject(); mouseJSON = cJSON_CreateObject();
for (i = 0 ; i < CONTROL_MAX ; i++) for (i = 0; i < CONTROL_MAX; i++)
{ {
cJSON_AddNumberToObject(mouseJSON, getLookupName("CONTROL_", i), app.mouseControls[i]); cJSON_AddNumberToObject(mouseJSON, getLookupName("CONTROL_", i), app.mouseControls[i]);
} }
@ -365,7 +347,7 @@ static void handleCommandLineConfig(int argc, char *argv[])
{ {
int i; int i;
for (i = 1 ; i < argc ; i++) for (i = 1; i < argc; i++)
{ {
if (strcmp(argv[i], "-size") == 0) if (strcmp(argv[i], "-size") == 0)
{ {

View File

@ -19,10 +19,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "input.h"
#include "../system/atlas.h" #include "../system/atlas.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/sound.h" #include "../system/sound.h"
#include "input.h"
extern App app; extern App app;

View File

@ -18,11 +18,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include <dirent.h>
#include "io.h"
#include <sys/stat.h> #include <sys/stat.h>
#include "dirent.h"
#include "../common.h"
#include "../system/util.h" #include "../system/util.h"
#include "io.h"
extern App app; extern App app;
@ -43,7 +45,7 @@ char *getFileLocation(char *filename)
return filename; return filename;
} }
sprintf(path, DATA_DIR"/%s", filename); sprintf(path, DATA_DIR "/%s", filename);
return path; return path;
} }
@ -120,8 +122,8 @@ char **getFileList(char *dir, int *count)
if (i > 0) if (i > 0)
{ {
filenames = malloc(sizeof(char*) * i); filenames = malloc(sizeof(char *) * i);
memset(filenames, 0, sizeof(char*) * i); memset(filenames, 0, sizeof(char *) * i);
rewinddir(d); rewinddir(d);
@ -147,7 +149,7 @@ char **getFileList(char *dir, int *count)
if (filenames) if (filenames)
{ {
qsort(filenames, i, sizeof(char*), stringComparator); qsort(filenames, i, sizeof(char *), stringComparator);
} }
return filenames; return filenames;

View File

@ -18,10 +18,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h"
#include "lookup.h"
#include <SDL2/SDL_image.h> #include <SDL2/SDL_image.h>
#include "../common.h"
#include "lookup.h"
static Lookup head; static Lookup head;
static Lookup *tail; static Lookup *tail;
@ -225,7 +227,7 @@ long lookup(char *name)
{ {
Lookup *l; Lookup *l;
for (l = head.next ; l != NULL ; l = l->next) for (l = head.next; l != NULL; l = l->next)
{ {
if (strcmp(l->name, name) == 0) if (strcmp(l->name, name) == 0)
{ {
@ -244,7 +246,7 @@ char *getLookupName(char *prefix, long num)
{ {
Lookup *l; Lookup *l;
for (l = head.next ; l != NULL ; l = l->next) for (l = head.next; l != NULL; l = l->next)
{ {
if (l->value == num && strncmp(prefix, l->name, strlen(prefix)) == 0) if (l->value == num && strncmp(prefix, l->name, strlen(prefix)) == 0)
{ {

View File

@ -19,10 +19,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "modalDialog.h"
#include "../system/input.h"
#include "../system/text.h" #include "../system/text.h"
#include "../system/widgets.h" #include "../system/widgets.h"
#include "../system/input.h" #include "modalDialog.h"
extern App app; extern App app;
extern Colors colors; extern Colors colors;

View File

@ -19,9 +19,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "resources.h"
#include "../system/atlas.h" #include "../system/atlas.h"
#include "../system/io.h" #include "../system/io.h"
#include "resources.h"
char **backgrounds; char **backgrounds;
char **planets; char **planets;
@ -38,9 +39,9 @@ void initResources(void)
numBackgrounds = numPlanets = numMusicFiles = 0; numBackgrounds = numPlanets = numMusicFiles = 0;
filenames = getFileList("gfx/backgrounds", &numBackgrounds); filenames = getFileList("gfx/backgrounds", &numBackgrounds);
backgrounds = malloc(sizeof(char*) * numBackgrounds); backgrounds = malloc(sizeof(char *) * numBackgrounds);
for (i = 0 ; i < numBackgrounds ; i++) for (i = 0; i < numBackgrounds; i++)
{ {
backgrounds[i] = malloc(sizeof(char) * MAX_FILENAME_LENGTH); backgrounds[i] = malloc(sizeof(char) * MAX_FILENAME_LENGTH);
sprintf(backgrounds[i], "gfx/backgrounds/%s", filenames[i]); sprintf(backgrounds[i], "gfx/backgrounds/%s", filenames[i]);
@ -53,9 +54,9 @@ void initResources(void)
free(filenames); free(filenames);
filenames = getAtlasFileList("gfx/planets", &numPlanets); filenames = getAtlasFileList("gfx/planets", &numPlanets);
planets = malloc(sizeof(char*) * numPlanets); planets = malloc(sizeof(char *) * numPlanets);
for (i = 0 ; i < numPlanets ; i++) for (i = 0; i < numPlanets; i++)
{ {
planets[i] = malloc(sizeof(char) * MAX_FILENAME_LENGTH); planets[i] = malloc(sizeof(char) * MAX_FILENAME_LENGTH);
strcpy(planets[i], filenames[i]); strcpy(planets[i], filenames[i]);
@ -69,9 +70,9 @@ void initResources(void)
filenames = getFileList("music/battle/", &numMusicFiles); filenames = getFileList("music/battle/", &numMusicFiles);
musicFiles = malloc(sizeof(char*) * numMusicFiles); musicFiles = malloc(sizeof(char *) * numMusicFiles);
for (i = 0 ; i < numMusicFiles ; i++) for (i = 0; i < numMusicFiles; i++)
{ {
musicFiles[i] = malloc(sizeof(char) * MAX_FILENAME_LENGTH); musicFiles[i] = malloc(sizeof(char) * MAX_FILENAME_LENGTH);
sprintf(musicFiles[i], "music/battle/%s", filenames[i]); sprintf(musicFiles[i], "music/battle/%s", filenames[i]);
@ -103,17 +104,17 @@ void destroyResources(void)
{ {
int i; int i;
for (i = 0 ; i < numBackgrounds ; i++) for (i = 0; i < numBackgrounds; i++)
{ {
free(backgrounds[i]); free(backgrounds[i]);
} }
for (i = 0 ; i < numPlanets ; i++) for (i = 0; i < numPlanets; i++)
{ {
free(planets[i]); free(planets[i]);
} }
for (i = 0 ; i < numMusicFiles ; i++) for (i = 0; i < numMusicFiles; i++)
{ {
free(musicFiles[i]); free(musicFiles[i]);
} }

View File

@ -18,11 +18,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h"
#include "sound.h"
#include <SDL2/SDL_mixer.h> #include <SDL2/SDL_mixer.h>
#include "../system/util.h"
#include "../common.h"
#include "../system/io.h" #include "../system/io.h"
#include "../system/util.h"
#include "sound.h"
#define MAX_BATTLE_SOUND_DISTANCE 1500 #define MAX_BATTLE_SOUND_DISTANCE 1500
#define MIN_BATTLE_SOUND_DISTANCE 100 #define MIN_BATTLE_SOUND_DISTANCE 100
@ -39,7 +41,7 @@ static int lastPlayerY;
void initSounds(void) void initSounds(void)
{ {
memset(sounds, 0, sizeof(Mix_Chunk*) * SND_MAX); memset(sounds, 0, sizeof(Mix_Chunk *) * SND_MAX);
music = NULL; music = NULL;
@ -173,7 +175,7 @@ void destroySounds(void)
{ {
int i; int i;
for (i = 0 ; i < SND_MAX ; i++) for (i = 0; i < SND_MAX; i++)
{ {
if (sounds[i]) if (sounds[i])
{ {

View File

@ -18,11 +18,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h"
#include "text.h"
#include <SDL2/SDL_ttf.h> #include <SDL2/SDL_ttf.h>
#include "../system/textures.h"
#include "../common.h"
#include "../system/io.h" #include "../system/io.h"
#include "../system/textures.h"
#include "text.h"
#define FONT_SIZE 32 #define FONT_SIZE 32
#define FONT_TEXTURE_SIZE 512 #define FONT_TEXTURE_SIZE 512
@ -167,7 +169,7 @@ static void drawTextLines(int x, int y, int size, int align)
n = currentWidth = 0; n = currentWidth = 0;
for (i = 0 ; i < len ; i++) for (i = 0; i < len; i++)
{ {
token[n++] = drawTextBuffer[i]; token[n++] = drawTextBuffer[i];
@ -223,7 +225,7 @@ static void drawTextLine(int x, int y, int size, int align, const char *line)
x -= (w / 2); x -= (w / 2);
} }
for (i = 0 ; i < strlen(line) ; i++) for (i = 0; i < strlen(line); i++)
{ {
word[n++] = line[i]; word[n++] = line[i];
@ -264,7 +266,7 @@ void useFont(char *name)
{ {
Font *f; Font *f;
for (f = fontHead.next ; f != NULL ; f = f->next) for (f = fontHead.next; f != NULL; f = f->next)
{ {
if (strcmp(f->name, name) == 0) if (strcmp(f->name, name) == 0)
{ {
@ -307,7 +309,7 @@ int getWrappedTextHeight(char *text, int size)
len = strlen(drawTextBuffer); len = strlen(drawTextBuffer);
memset(word, 0, MAX_WORD_LENGTH); memset(word, 0, MAX_WORD_LENGTH);
for (i = 0 ; i < len ; i++) for (i = 0; i < len; i++)
{ {
word[n++] = drawTextBuffer[i]; word[n++] = drawTextBuffer[i];
@ -338,7 +340,7 @@ static int nextGlyph(const char *str, int *i, char *glyphBuffer)
unsigned bit; unsigned bit;
const char *p; const char *p;
bit = (unsigned char) str[*i]; bit = (unsigned char)str[*i];
if (bit < ' ') if (bit < ' ')
{ {

View File

@ -18,10 +18,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h"
#include "textures.h"
#include <SDL2/SDL_image.h> #include <SDL2/SDL_image.h>
#include "../common.h"
#include "../system/io.h" #include "../system/io.h"
#include "textures.h"
extern App app; extern App app;
@ -80,7 +82,7 @@ SDL_Texture *getTexture(char *filename)
i = strlen(filename) % NUM_TEXTURE_BUCKETS; i = strlen(filename) % NUM_TEXTURE_BUCKETS;
/* check if the texture is already loaded */ /* check if the texture is already loaded */
for (t = textures[i].next ; t != NULL ; t = t->next) for (t = textures[i].next; t != NULL; t = t->next)
{ {
if (strcmp(t->name, filename) == 0) if (strcmp(t->name, filename) == 0)
{ {
@ -112,7 +114,7 @@ void destroyTextures(void)
Texture *t, *next; Texture *t, *next;
int i; int i;
for (i = 0 ; i < NUM_TEXTURE_BUCKETS ; i++) for (i = 0; i < NUM_TEXTURE_BUCKETS; i++)
{ {
t = textures[i].next; t = textures[i].next;

View File

@ -19,9 +19,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "transition.h"
#include "../system/draw.h" #include "../system/draw.h"
#include "../system/input.h" #include "../system/input.h"
#include "transition.h"
static long transitionStartTime; static long transitionStartTime;

View File

@ -18,10 +18,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h"
#include "util.h"
#include <time.h> #include <time.h>
#include "../common.h"
#include "../json/cJSON.h" #include "../json/cJSON.h"
#include "util.h"
float mod(float n, float x) float mod(float n, float x)
{ {
@ -51,7 +53,7 @@ int getDistance(int x1, int y1, int x2, int y2)
x = x2 - x1; x = x2 - x1;
y = y2 - y1; y = y2 - y1;
return sqrt(x * x + y *y); return sqrt(x * x + y * y);
} }
char **toTypeArray(char *types, int *numTypes) char **toTypeArray(char *types, int *numTypes)
@ -61,7 +63,7 @@ char **toTypeArray(char *types, int *numTypes)
*numTypes = 1; *numTypes = 1;
for (i = 0 ; i < strlen(types) ; i++) for (i = 0; i < strlen(types); i++)
{ {
if (types[i] == ';') if (types[i] == ';')
{ {
@ -69,7 +71,7 @@ char **toTypeArray(char *types, int *numTypes)
} }
} }
typeArray = malloc(*numTypes * sizeof(char*)); typeArray = malloc(*numTypes * sizeof(char *));
i = 0; i = 0;
type = strtok(types, ";"); type = strtok(types, ";");

View File

@ -18,19 +18,21 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h"
#include "widgets.h"
#include "../json/cJSON.h"
#include <SDL2/SDL_image.h> #include <SDL2/SDL_image.h>
#include "../system/lookup.h"
#include "../system/draw.h" #include "../common.h"
#include "../system/util.h"
#include "../system/input.h" #include "../json/cJSON.h"
#include "../system/controls.h"
#include "../system/sound.h"
#include "../system/io.h"
#include "../system/text.h"
#include "../system/atlas.h" #include "../system/atlas.h"
#include "../system/controls.h"
#include "../system/draw.h"
#include "../system/input.h"
#include "../system/io.h"
#include "../system/lookup.h"
#include "../system/sound.h"
#include "../system/text.h"
#include "../system/util.h"
#include "widgets.h"
extern App app; extern App app;
extern Colors colors; extern Colors colors;
@ -97,7 +99,7 @@ static void updateSelectWidgets(void)
{ {
Widget *w; Widget *w;
for (w = head.next; w != NULL ; w = w->next) for (w = head.next; w != NULL; w = w->next)
{ {
if (w->type == WT_SELECT_BUTTON && w->parent) if (w->type == WT_SELECT_BUTTON && w->parent)
{ {
@ -120,7 +122,7 @@ Widget *getWidget(const char *name, const char *group)
{ {
Widget *w; Widget *w;
for (w = head.next; w != NULL ; w = w->next) for (w = head.next; w != NULL; w = w->next)
{ {
if (strcmp(w->name, name) == 0 && strcmp(w->group, group) == 0) if (strcmp(w->name, name) == 0 && strcmp(w->group, group) == 0)
{ {
@ -148,7 +150,7 @@ void drawWidgets(const char *group)
hoverWidget = NULL; hoverWidget = NULL;
for (w = head.next; w != NULL ; w = w->next) for (w = head.next; w != NULL; w = w->next)
{ {
if ((app.modalDialog.type == MD_NONE || (app.modalDialog.type != MD_NONE && w->isModal)) && w->visible && strcmp(w->group, group) == 0) if ((app.modalDialog.type == MD_NONE || (app.modalDialog.type != MD_NONE && w->isModal)) && w->visible && strcmp(w->group, group) == 0)
{ {
@ -181,7 +183,7 @@ void drawWidgets(const char *group)
setAtlasColor(128, 192, 255, 255); setAtlasColor(128, 192, 255, 255);
} }
blit(w->texture , w->rect.x, w->rect.y, 0); blit(w->texture, w->rect.x, w->rect.y, 0);
} }
else else
{ {
@ -277,7 +279,7 @@ void setWidgetOption(const char *name, const char *group, const char *value)
if (w) if (w)
{ {
for (i = 0 ; i < w->numOptions ; i++) for (i = 0; i < w->numOptions; i++)
{ {
if (strcmp(w->options[i], value) == 0) if (strcmp(w->options[i], value) == 0)
{ {
@ -340,7 +342,7 @@ static void handleKeyboard(void)
{ {
if (selectedWidget->type == WT_BUTTON) if (selectedWidget->type == WT_BUTTON)
{ {
if (app.keyboard[SDL_SCANCODE_SPACE] ||app.keyboard[SDL_SCANCODE_RETURN]) if (app.keyboard[SDL_SCANCODE_SPACE] || app.keyboard[SDL_SCANCODE_RETURN])
{ {
playSound(SND_GUI_SELECT); playSound(SND_GUI_SELECT);
old = selectedWidget; old = selectedWidget;
@ -403,7 +405,7 @@ static void loadWidgets()
filenames = getFileList("data/widgets", &count); filenames = getFileList("data/widgets", &count);
for (i = 0 ; i < count ; i++) for (i = 0; i < count; i++)
{ {
sprintf(path, "data/widgets/%s", filenames[i]); sprintf(path, "data/widgets/%s", filenames[i]);
@ -428,7 +430,7 @@ static void loadWidgetSet(char *filename)
if (root) if (root)
{ {
for (node = root->child ; node != NULL ; node = node->next) for (node = root->child; node != NULL; node = node->next)
{ {
w = malloc(sizeof(Widget)); w = malloc(sizeof(Widget));
memset(w, 0, sizeof(Widget)); memset(w, 0, sizeof(Widget));
@ -504,7 +506,7 @@ static void createOptions(Widget *w, char *options)
w->numOptions = 1; w->numOptions = 1;
for (i = 0 ; i < strlen(options) ; i++) for (i = 0; i < strlen(options); i++)
{ {
if (options[i] == ';') if (options[i] == ';')
{ {
@ -512,7 +514,7 @@ static void createOptions(Widget *w, char *options)
} }
} }
w->options = malloc(w->numOptions * sizeof(char*)); w->options = malloc(w->numOptions * sizeof(char *));
i = 0; i = 0;
option = strtok(options, ";"); option = strtok(options, ";");
@ -534,7 +536,7 @@ static void createSelectButtons(Widget *w)
int i; int i;
Widget *btn; Widget *btn;
for (i = 0 ; i < 2 ; i++) for (i = 0; i < 2; i++)
{ {
btn = malloc(sizeof(Widget)); btn = malloc(sizeof(Widget));
memcpy(btn, w, sizeof(Widget)); memcpy(btn, w, sizeof(Widget));
@ -570,7 +572,7 @@ void autoSizeWidgetButtons(char *group, int recenter)
maxWidth = 0; maxWidth = 0;
for (w = head.next; w != NULL ; w = w->next) for (w = head.next; w != NULL; w = w->next)
{ {
if (strcmp(w->group, group) == 0 && w->type == WT_BUTTON) if (strcmp(w->group, group) == 0 && w->type == WT_BUTTON)
{ {
@ -580,7 +582,7 @@ void autoSizeWidgetButtons(char *group, int recenter)
} }
} }
for (w = head.next; w != NULL ; w = w->next) for (w = head.next; w != NULL; w = w->next)
{ {
if (strcmp(w->group, group) == 0 && w->type == WT_BUTTON) if (strcmp(w->group, group) == 0 && w->type == WT_BUTTON)
{ {
@ -602,7 +604,7 @@ void destroyWidgets(void)
while (w) while (w)
{ {
for (i = 0 ; i < w->numOptions ; i++) for (i = 0; i < w->numOptions; i++)
{ {
free(w->options[i]); free(w->options[i]);
} }

View File

@ -19,10 +19,11 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/ */
#include "../common.h" #include "../common.h"
#include "testMission.h"
#include "../json/cJSON.h"
#include "../galaxy/mission.h"
#include "../battle/battle.h" #include "../battle/battle.h"
#include "../galaxy/mission.h"
#include "../json/cJSON.h"
#include "testMission.h"
extern Game game; extern Game game;