gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

C/C++ > Header file refuses to work!!

#177039 - blessingta@hotmail.co.uk - Fri Dec 02, 2011 12:02 pm

I'm trying to declare my game logic in header file and it goes all pants on me. A Real headche.

Why does devkitpro hate bool when they are declared externally in header files?

Code:
 extern bool again;
i
Quote:


arm-eabi-gcc -MMD -MP -MF /g/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/build/game.d -g -Wall -O3 -mcpu=arm7tdmi -mtune=arm7tdmi -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -I/g/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include -I/D/devkitPro/libgba/include -I/g/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/build -c /g/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/source/game.c -o game.o
In file included from g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/source/game.c:1:0:
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:20:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:21:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:28:19: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:35:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:36:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:38:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:40:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:42:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:43:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:45:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:46:15: error: expected ';', ',' or ')' before '&' token
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:52:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:53:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:54:1: error: unknown type name 'bool'
g:/YEAR2/Console_Programming_CONPRG/Course_Work/gba/my_gba_game/include/game.h:57:1: error: unknown type name 'bool'


ful code

Code:

#ifndef GAME_H
#define GAME_H
#include <stdio.h>
#include <stdlib.h>

#include "btatimer.h"


//resets whole game
extern void gameover();

//key states
extern volatile unsigned char vucKEYS_STATES;


extern const unsigned char red;
extern const unsigned char blue;
extern unsigned char Player;
extern unsigned char ComputerAI;
 extern bool again;
 
extern bool bgame_turn;
extern bool bvalid_Piece;

extern unsigned char ucLocation;
extern unsigned char ucMove;
extern volatile unsigned char vucCURSOR;
extern volatile unsigned int vucGAME_TIMER;
extern unsigned char gameboard [9];
extern void reset_score ();
extern void Score(bool bscore);
extern void Swap_Pieces(const unsigned char winner);
extern void swap_turn();
extern void resetgame();
extern void reset_timer();
extern void reset_timer();
extern void init_game();
extern bool check_piece_turn();
extern bool check_player_turn();
extern unsigned char request_cursor_pos ();
extern bool Check_If_Player_Piece(unsigned char position_chosen);
extern void reset_turn_info();
extern bool pathway_valid (unsigned char location, unsigned char move);
extern void valid_move_true(unsigned char location, unsigned char move);
extern bool Check_If_Player_Pieces_Max();
extern bool Player_Move();
extern unsigned char Cycle_to_locate_piece(unsigned int piece_number);
extern bool find_valid_movepath(
   unsigned int & uiPiece,
      //find piece chosen to be moved
      unsigned char & Move_Piece,
      //Locate valid path & make move if true
      unsigned char & pathway,
      unsigned char Store_valid_moves[9], unsigned char & validpos);
extern bool Randomly_Place_Piece();
extern bool ComputerAI_Move();
extern bool make_a_line(unsigned char cPlayer);
extern void remove_winning_pieces(unsigned char winner);
extern void Check_If_Scored ();
extern bool Check_Game_Timer();
extern void run_game();

#endif

#177040 - vuurrobin - Fri Dec 02, 2011 12:05 pm

c doesn't have a bool type by default. #include <stdbool.h> should work.
_________________
my blog:
http://vuurrobin.100webcustomers.com/

#177041 - blessingta@hotmail.co.uk - Fri Dec 02, 2011 12:46 pm

appreciated :)

#177043 - blessingta@hotmail.co.uk - Fri Dec 02, 2011 1:14 pm

..error post edited out

#177047 - Miked0801 - Fri Dec 02, 2011 4:30 pm

#define bool int