Map now resides on a multidimensional array titled map_matrix. This stores the Tiles in a Stack structure at each cell - I believe this should instead be changed so that each Tile instead has pointers to the previous and next Tiles, so that the map_matrix only holds Tile pointers rather than Stack structs containing some variable amount of Tile pointers. Also added a visible_matrix that denotes what tiles are visible to the player. This is simply a multi-dimensional array of ints that act as bit fields for various flags (such as TILE_VISIBLE, TILE_CAN_SEE, TILE_LIGHT_ONE, TILE_LIGHT_TWO, etc. - multiple light flags can be concatted to provide a broad array of light levels).
parent
3d1fb1de41
commit
2d7a45e0b5
|
@ -1,12 +1,15 @@
|
|||
From the console using GNU CC and make:
|
||||
From the console using GNU CC and make (*nix):
|
||||
make // compiles default(curses) client
|
||||
make curses // compiles curses client, linking to curses (-lcurses)
|
||||
make xcurses // compiles curses client, linking to xcurses/PDCurses library
|
||||
make sdl // compile sdl client
|
||||
|
||||
From XCode:
|
||||
open xcode/timesynk.xcodeproj
|
||||
From XCode (Mac OS X):
|
||||
open xcode/timesynk.xcodeproj // opens the SDL client
|
||||
Build & Go
|
||||
|
||||
From Dev-Cpp:
|
||||
???
|
||||
From Dev-Cpp (Windows):
|
||||
open devcpp/timesynk-pdcurses.dev // opens the curses client, linked to the PDCurses library.
|
||||
- the pdcurses project assumes curses.h and pdcurses.lib to be in "../../PDCurses/". Once compiled, copy PDCurses.dll to the same directory as the timesynk.exe
|
||||
open devcpp/timesynk-sdl.dev // opens the SDL client
|
||||
- the SDL project is compiled against SDL-1.2.15, and as such, looks for SDL's "lib/" and "include/" directories in "../../SDL-1.2.15/". Copy SDL.dll to the same directory as timesynk.exe.
|
||||
|
|
7
Makefile
7
Makefile
|
@ -1,7 +1,7 @@
|
|||
CC = gcc
|
||||
PREFIX = ./
|
||||
BINARY=timesynk
|
||||
OBJS = main.o game.o player.o net/sockets.o
|
||||
OBJS = main.o game.o player.o wall.o net/sockets.o
|
||||
CURSES_OBJS = interface/curses.o
|
||||
SDL_OBJS = interface/sdl.o
|
||||
DEBUG = -g
|
||||
|
@ -28,9 +28,12 @@ all: $(BINARY)
|
|||
clean:
|
||||
rm -f $(OBJS) $(CURSES_OBJS) $(SDL_OBJS) $(BINARY)
|
||||
|
||||
main.o: main.c stubs.h interface/curses.c net/sockets.c
|
||||
main.o: main.c stubs.h wall.h wall.c interface/curses.c net/sockets.c
|
||||
$(CC) $(CFLAGS) -c main.c
|
||||
|
||||
wall.o: wall.h wall.c
|
||||
$(CC) $(CFLAGS) -c wall.c
|
||||
|
||||
game.o: game.h game.c
|
||||
$(CC) $(CFLAGS) -c game.c
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
World draw order, if all things are drawn linearly, should be:
|
||||
items
|
||||
walls
|
||||
monsters
|
||||
|
||||
If we instead use a vague display_map that instead hosts the appearance of the item/wall/monster in a multidimensional array, we would save processing power at the expense of ram.
|
||||
display_map[1][3] = '#';
|
||||
display_map[1][3] = TILE_ID;
|
|
@ -0,0 +1,15 @@
|
|||
/*
|
||||
|
||||
*/
|
||||
#ifndef DISPLAY_H
|
||||
#define DISPLAY_H
|
||||
|
||||
#define TILE_VISIBLE 1
|
||||
#define TILE_CAN_SEE 2
|
||||
#define TILE_LIGHT_ONE 4
|
||||
|
||||
int display_map[32][32];
|
||||
|
||||
int visible_matrix[15][15];
|
||||
|
||||
#endif
|
42
game.c
42
game.c
|
@ -4,10 +4,42 @@
|
|||
#include "main.h"
|
||||
#include "common.h"
|
||||
#include "game.h"
|
||||
#include "wall.h"
|
||||
#include "display.h"
|
||||
|
||||
void drawMap() {
|
||||
// int i;
|
||||
// for(i = updated_live_map_length;i > 0;i++) {
|
||||
// interfaceDrawTile(updated_live_map[i].x, updated_live_map[i].y);
|
||||
// }
|
||||
int gameInit() {
|
||||
//Stack map_matrix[2][2]
|
||||
map_matrix[1][1].tile[0] = (Tile*) &walls[WALL_STONE];
|
||||
map_matrix[1][1].size = 1;
|
||||
map_matrix[1][2].tile[0] = (Tile*) &walls[WALL_WOOD];
|
||||
map_matrix[1][2].size = 1;
|
||||
map_matrix[2][1].tile[0] = (Tile*) &walls[WALL_STEEL];
|
||||
map_matrix[2][1].size = 1;
|
||||
visible_matrix[1][1] |= TILE_VISIBLE;
|
||||
visible_matrix[1][2] |= TILE_VISIBLE;
|
||||
visible_matrix[2][1] |= TILE_VISIBLE;
|
||||
/* map_walls[3][1] = &walls[WALL_STONE];
|
||||
map_walls[3][2] = &walls[WALL_STONE];
|
||||
map_walls[3][3] = &walls[WALL_STONE];
|
||||
display_map[1][1] = 1;
|
||||
display_map[1][2] = 1;
|
||||
display_map[1][3] = 1;
|
||||
display_map[3][1] = 1;
|
||||
display_map[3][2] = 1;
|
||||
display_map[3][3] = 1; */
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
void gameLoop() {
|
||||
}
|
||||
|
||||
int gameCollision(target_x, target_y) {
|
||||
if (map_matrix[target_x][target_y].tile[0]) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void gameUpdateTile(int x, int y) {
|
||||
display_map[x][y] = 2;
|
||||
}
|
||||
|
|
9
game.h
9
game.h
|
@ -1,5 +1,8 @@
|
|||
#ifndef GAME_H
|
||||
#define GAME_H
|
||||
#include "wall.h"
|
||||
#include "display.h"
|
||||
#include "map.h"
|
||||
|
||||
/* The Eight Holy Directions */
|
||||
#define NORTH 8
|
||||
|
@ -10,5 +13,11 @@
|
|||
#define NORTHWEST 9
|
||||
#define SOUTHEAST 1
|
||||
#define SOUTHWEST 3
|
||||
Stack map_matrix[15][15];
|
||||
|
||||
int gameInit();
|
||||
void gameLoop();
|
||||
|
||||
int gameCollision(int target_x, int target_y);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -2,30 +2,62 @@
|
|||
#include "curses.h"
|
||||
#include "../player.h"
|
||||
#include "../game.h"
|
||||
#include "../wall.h"
|
||||
#include "../main.h"
|
||||
#include "../common.h"
|
||||
|
||||
/*
|
||||
Acceptable colors for foreground and background (from manpage, curs_color):
|
||||
COLOR_BLACK
|
||||
COLOR_RED
|
||||
COLOR_GREEN
|
||||
COLOR_YELLOW
|
||||
COLOR_BLUE
|
||||
COLOR_MAGENTA
|
||||
COLOR_CYAN
|
||||
COLOR_WHITE
|
||||
|
||||
Acceptable attributes (from manpage, curs_attr):
|
||||
A_NORMAL Normal display (no highlight)
|
||||
A_STANDOUT Best highlighting mode of the terminal.
|
||||
A_UNDERLINE Underlining
|
||||
A_REVERSE Reverse video
|
||||
A_BLINK Blinking
|
||||
A_DIM Half bright
|
||||
A_BOLD Extra bright or bold
|
||||
A_PROTECT Protected mode
|
||||
A_INVIS Invisible or blank mode
|
||||
A_ALTCHARSET Alternate character set
|
||||
A_CHARTEXT Bit-mask to extract a character
|
||||
*/
|
||||
CursesTile ascii_walls[] = {
|
||||
{'#', COLOR_WHITE, COLOR_BLACK, 0}, // 0=STONE_WALL
|
||||
{'#', COLOR_YELLOW, COLOR_BLACK, 0}, // 1=WOOD_WALL
|
||||
{'#', COLOR_WHITE, COLOR_BLACK, A_BOLD} // 2=STEEL_WALL
|
||||
};
|
||||
|
||||
int interfaceInit() {
|
||||
// initialize ncurses library
|
||||
if ((screen = initscr()) == NULL) {
|
||||
perror("initscr() error'd");
|
||||
return ERROR;
|
||||
}
|
||||
original_cursor = curs_set(0); // store original cursor position for restore
|
||||
|
||||
original_cursor = curs_set(0); // store original cursor position for restore and hide cursor
|
||||
keypad(screen, TRUE); // enable arrow keys/keypad
|
||||
noecho(); // turn off key echoing
|
||||
nonl(); // do not do NL->CR/NL on output
|
||||
cbreak(); // Handle char presses immediately, do not wait for \n
|
||||
|
||||
// draw a border for fun
|
||||
box(screen, 0, 0);
|
||||
|
||||
mvwaddstr(screen, LINES/2-1, COLS/2-4, LOGO_STRING_A);
|
||||
mvwaddstr(screen, LINES/2, COLS/2-4, LOGO_STRING_B);
|
||||
mvwaddstr(screen, LINES/2+1, COLS/2-4, LOGO_STRING_C);
|
||||
mvwaddstr(screen, LINES/2+3, COLS/2-5, "Q/q to quit");
|
||||
|
||||
if (has_colors()) {
|
||||
start_color();
|
||||
// set up all possible color pairs using COLORS as our max (8 default)
|
||||
int x, y;
|
||||
for (x=0;x<COLORS;x++) {
|
||||
for(y=0;y<COLORS;y++) {
|
||||
init_pair(x*COLORS+y, x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
@ -52,8 +84,28 @@ void interfaceLoop() {
|
|||
}
|
||||
|
||||
void interfaceDraw() {
|
||||
clear();
|
||||
mvwaddstr(screen, player.y, player.x, "@");
|
||||
//clear();
|
||||
int step_x = player.x - 12;
|
||||
int step_y = player.y - 6;
|
||||
int end_x = player.x + 12;
|
||||
int end_y = player.y + 6;
|
||||
while (step_x < end_x) {
|
||||
step_y = player.y - 6;
|
||||
while (step_y < end_y) {
|
||||
if (visible_matrix[step_x][step_y] & TILE_VISIBLE) {
|
||||
//int color = temp->fg * COLORS + temp->bg;
|
||||
//attron(COLOR_PAIR(color) | temp->attr);
|
||||
mvwaddch(screen, step_y, step_x, ascii_walls[map_matrix[step_x][step_y].tile[0]->id].ch);
|
||||
//attroff(COLOR_PAIR(color) | temp->attr);
|
||||
} else {
|
||||
mvwaddch(screen, step_y, step_x, ' ');
|
||||
}
|
||||
step_y++; // move down
|
||||
}
|
||||
step_x++; // move right
|
||||
}
|
||||
// draw player last
|
||||
mvwaddch(screen, player.y, player.x, '@');
|
||||
refresh();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,18 @@
|
|||
#ifndef NCURSES_H
|
||||
#define NCURSES_H
|
||||
|
||||
WINDOW * screen;
|
||||
int cols;
|
||||
int rows;
|
||||
|
||||
typedef struct {
|
||||
char ch;
|
||||
int fg;
|
||||
int bg;
|
||||
int attr;
|
||||
} CursesTile;
|
||||
|
||||
extern CursesTile ascii_walls[];
|
||||
|
||||
int original_cursor;
|
||||
#endif
|
||||
|
|
|
@ -12,7 +12,7 @@ int interfaceInit() {
|
|||
// Load it up!
|
||||
SDL_Init(SDL_INIT_EVERYTHING);
|
||||
// Set up our SDL Window
|
||||
if ((screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE)) == NULL) {
|
||||
if ((screen = SDL_SetVideoMode(640, 384, 32, SDL_SWSURFACE)) == NULL) {
|
||||
return ERROR;
|
||||
}
|
||||
SDL_WM_SetCaption(NAME, NULL);
|
||||
|
@ -51,7 +51,22 @@ void interfaceLoop() {
|
|||
void interfaceDraw() {
|
||||
// TODO: instead of redrawing whole screen, redraw last positions of tiles
|
||||
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format, 0, 0, 0));
|
||||
SDL_Rect player_rect = {player.x*16, player.y*16, 16, 16};
|
||||
int step_x = player.x - 12;
|
||||
int step_y = player.y - 6;
|
||||
int end_x = player.x + 12;
|
||||
int end_y = player.y + 6;
|
||||
while (step_x < end_x) {
|
||||
step_y = player.y - 6;
|
||||
while (step_y < end_y) {
|
||||
if (visible_matrix[step_x][step_y] & TILE_VISIBLE) {
|
||||
SDL_Rect wall_rect = {step_x*8, step_y*16, 8, 16};
|
||||
SDL_FillRect(screen, &wall_rect, SDL_MapRGB(screen->format, 128, 128, 128));
|
||||
}
|
||||
step_y++; // move down
|
||||
}
|
||||
step_x++; // move right
|
||||
}
|
||||
SDL_Rect player_rect = {player.x*8, player.y*16, 8, 16};
|
||||
SDL_FillRect(screen, &player_rect, SDL_MapRGB(screen->format, 255, 255, 255));
|
||||
SDL_Flip(screen); // redraw!
|
||||
}
|
||||
|
|
3
main.c
3
main.c
|
@ -18,11 +18,14 @@ int main(int argc, char *argv[]) {
|
|||
// h'okay, let's add our default player commands
|
||||
playerSetCommand(PLAYER_MOVE, playerMove);
|
||||
|
||||
gameInit();
|
||||
|
||||
// start our program loop!
|
||||
while(is_running) {
|
||||
if (is_networking)
|
||||
netLoop(); // handle new network input
|
||||
|
||||
gameLoop();
|
||||
//worldLoop();
|
||||
interfaceDraw();
|
||||
interfaceLoop(); // handle new user input, redraw screen, etc.
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
#ifndef MAP_H
|
||||
#define MAP_H
|
||||
typedef struct {
|
||||
int id;
|
||||
int material;
|
||||
char name[8];
|
||||
} Tile;
|
||||
|
||||
typedef struct {
|
||||
//Tile *tile[15]; // array of 16 pointers
|
||||
int size;
|
||||
Tile *tile[15]; // array of 16 pointers
|
||||
} Stack;
|
||||
|
||||
#endif
|
17
player.c
17
player.c
|
@ -13,16 +13,25 @@ void playerSetCommand(int command_id, void(*function)) {
|
|||
void playerMove(int direction, int distance) {
|
||||
switch(direction) {
|
||||
case NORTH:
|
||||
player.y -= distance;
|
||||
if (!gameCollision(player.x, (player.y-distance))) {
|
||||
//gameUpdateTile(player.x, player.y); // set old pos to be redrawn
|
||||
player.y -= distance;
|
||||
}
|
||||
break;
|
||||
case SOUTH:
|
||||
player.y += distance;
|
||||
if (!gameCollision(player.x, player.y+distance))
|
||||
//gameUpdateTile(player.x, player.y); // set old pos to be redrawn
|
||||
player.y += distance;
|
||||
break;
|
||||
case EAST:
|
||||
player.x += distance;
|
||||
if (!gameCollision(player.x+distance, player.y))
|
||||
//gameUpdateTile(player.x, player.y); // set old pos to be redrawn
|
||||
player.x += distance;
|
||||
break;
|
||||
case WEST:
|
||||
player.x -= distance;
|
||||
if (!gameCollision(player.x-distance, player.y))
|
||||
//gameUpdateTile(player.x, player.y); // set old pos to be redrawn
|
||||
player.x -= distance;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
#include "wall.h"
|
||||
WallTile walls[] = {
|
||||
{ WALL_STONE, MATERIAL_STONE, "stone" },
|
||||
{ WALL_WOOD, MATERIAL_WOOD, "wood" },
|
||||
{ WALL_STEEL, MATERIAL_STEEL, "steel" }
|
||||
};
|
||||
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
#ifndef WALL_H
|
||||
#define WALL_H
|
||||
/* move MATERIALs to materials.h */
|
||||
#define MATERIAL_STONE 0
|
||||
#define MATERIAL_WOOD 1
|
||||
#define MATERIAL_STEEL 2
|
||||
#define WALL_STONE 0
|
||||
#define WALL_WOOD 1
|
||||
#define WALL_STEEL 2
|
||||
typedef struct {
|
||||
int id;
|
||||
int material;
|
||||
char name[8];
|
||||
} WallTile;
|
||||
|
||||
extern WallTile walls[];
|
||||
|
||||
#endif
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -308,7 +308,7 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>player.c</string>
|
||||
<string>sdl.c</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
|
@ -316,26 +316,27 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CE0B20406471E060097A5F4</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>player.c</string>
|
||||
<string>sdl.c</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>20568DFA17EC16C60022F314</string>
|
||||
<string>203B68E717F7DA2400272675</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>20567ECA17E95DEC0002B1A9</string>
|
||||
<string>20567ECF17E95DEC0002B1A9</string>
|
||||
<string>20567EE317E95E0D0002B1A9</string>
|
||||
<string>2090289817E95F9E0051A253</string>
|
||||
<string>2090289D17E95F9E0051A253</string>
|
||||
<string>20D2707917E962A1005B3EA0</string>
|
||||
<string>20D2707A17E962A1005B3EA0</string>
|
||||
<string>2002F0D917E972B3003CF277</string>
|
||||
<string>20568DE617EC16C60022F314</string>
|
||||
<string>20568DE717EC16C60022F314</string>
|
||||
<string>20568DE817EC16C60022F314</string>
|
||||
<string>20568DE917EC16C60022F314</string>
|
||||
<string>20568DEA17EC16C60022F314</string>
|
||||
<string>2007C92E17ECF2EB00268653</string>
|
||||
<string>2050562017ED9E6100F572B7</string>
|
||||
<string>203B68D117F7D77900272675</string>
|
||||
<string>203B68D217F7D77900272675</string>
|
||||
</array>
|
||||
<key>prevStack</key>
|
||||
<array>
|
||||
|
@ -351,10 +352,9 @@
|
|||
<string>2090289E17E95F9E0051A253</string>
|
||||
<string>2090289F17E95F9E0051A253</string>
|
||||
<string>209028A517E95F9E0051A253</string>
|
||||
<string>20568DEB17EC16C60022F314</string>
|
||||
<string>20568DEC17EC16C60022F314</string>
|
||||
<string>20568DED17EC16C60022F314</string>
|
||||
<string>20568DEE17EC16C60022F314</string>
|
||||
<string>2007C93017ECF2EB00268653</string>
|
||||
<string>2050562217ED9E6100F572B7</string>
|
||||
<string>203B68D317F7D77900272675</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
@ -414,9 +414,9 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>20568DF017EC16C60022F314</string>
|
||||
<string>203B68D517F7D77900272675</string>
|
||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||
<string>20568DF117EC16C60022F314</string>
|
||||
<string>203B68D617F7D77900272675</string>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<string>1CE0B20506471E060097A5F4</string>
|
||||
</array>
|
||||
|
@ -552,8 +552,8 @@
|
|||
<array>
|
||||
<string>1C78EAAD065D492600B07095</string>
|
||||
<string>1CD10A99069EF8BA00B06720</string>
|
||||
<string>20F6A1B417E95A6200BAD261</string>
|
||||
<string>/Users/kts/Devel/timesynk/xcode/timesynk.xcodeproj</string>
|
||||
<string>20F6A1B417E95A6200BAD261</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>68 125 788 504 0 0 1024 746 </string>
|
||||
|
@ -572,12 +572,14 @@
|
|||
<key>Dock</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CD0528F0623707200166675</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string></string>
|
||||
<string>sdl.c</string>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
@ -586,7 +588,7 @@
|
|||
<key>Frame</key>
|
||||
<string>{{0, 0}, {500, 218}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>139 177 500 500 0 0 1024 746 </string>
|
||||
<string>53 221 500 500 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
|
@ -610,7 +612,7 @@
|
|||
<key>Frame</key>
|
||||
<string>{{0, 223}, {500, 236}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>139 177 500 500 0 0 1024 746 </string>
|
||||
<string>53 221 500 500 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
@ -633,18 +635,18 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>20F6A1B417E95A6200BAD261</string>
|
||||
<string>20568DF217EC16C60022F314</string>
|
||||
<string>203B68D717F7D77900272675</string>
|
||||
<string>1CD0528F0623707200166675</string>
|
||||
<string>XCMainBuildResultsModuleGUID</string>
|
||||
</array>
|
||||
<key>ToolbarConfiguration</key>
|
||||
<string>xcode.toolbar.config.buildV3</string>
|
||||
<key>WindowString</key>
|
||||
<string>139 177 500 500 0 0 1024 746 </string>
|
||||
<string>53 221 500 500 0 0 1024 746 </string>
|
||||
<key>WindowToolGUID</key>
|
||||
<string>20F6A1B417E95A6200BAD261</string>
|
||||
<key>WindowToolIsVisible</key>
|
||||
<false/>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FirstTimeWindowDisplayed</key>
|
||||
|
@ -753,13 +755,13 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>1CD10A99069EF8BA00B06720</string>
|
||||
<string>20568DF317EC16C60022F314</string>
|
||||
<string>203B68DA17F7D82800272675</string>
|
||||
<string>1C162984064C10D400B95A72</string>
|
||||
<string>20568DF417EC16C60022F314</string>
|
||||
<string>20568DF517EC16C60022F314</string>
|
||||
<string>20568DF617EC16C60022F314</string>
|
||||
<string>20568DF717EC16C60022F314</string>
|
||||
<string>20568DF817EC16C60022F314</string>
|
||||
<string>203B68DB17F7D82800272675</string>
|
||||
<string>203B68DC17F7D82800272675</string>
|
||||
<string>203B68DD17F7D82800272675</string>
|
||||
<string>203B68DE17F7D82800272675</string>
|
||||
<string>203B68DF17F7D82800272675</string>
|
||||
</array>
|
||||
<key>ToolbarConfiguration</key>
|
||||
<string>xcode.toolbar.config.debugV3</string>
|
||||
|
@ -921,7 +923,7 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>1C78EAAD065D492600B07095</string>
|
||||
<string>20568DF917EC16C60022F314</string>
|
||||
<string>203B68E017F7D82800272675</string>
|
||||
<string>1C78EAAC065D492600B07095</string>
|
||||
</array>
|
||||
<key>ToolbarConfiguration</key>
|
||||
|
|
|
@ -32,6 +32,84 @@
|
|||
rLen = 0;
|
||||
rLoc = 2147483647;
|
||||
};
|
||||
2007C92E17ECF2EB00268653 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20568DD417EBE9490022F314 /* player.c */;
|
||||
name = "player.c: 23";
|
||||
rLen = 0;
|
||||
rLoc = 614;
|
||||
rType = 0;
|
||||
vrLen = 508;
|
||||
vrLoc = 0;
|
||||
};
|
||||
2007C93017ECF2EB00268653 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20568DD417EBE9490022F314 /* player.c */;
|
||||
name = "player.c: 23";
|
||||
rLen = 0;
|
||||
rLoc = 614;
|
||||
rType = 0;
|
||||
vrLen = 508;
|
||||
vrLoc = 0;
|
||||
};
|
||||
203B68D117F7D77900272675 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20F6A1D417E95AD300BAD261 /* stubs.h */;
|
||||
name = "stubs.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 350;
|
||||
vrLoc = 0;
|
||||
};
|
||||
203B68D217F7D77900272675 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
comments = "error: 'map_walls' undeclared (first use in this function)";
|
||||
fRef = 20F6A1F017E95B6F00BAD261 /* sdl.c */;
|
||||
rLen = 1;
|
||||
rLoc = 57;
|
||||
rType = 1;
|
||||
};
|
||||
203B68D317F7D77900272675 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20F6A1D417E95AD300BAD261 /* stubs.h */;
|
||||
name = "stubs.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 350;
|
||||
vrLoc = 0;
|
||||
};
|
||||
203B68E717F7DA2400272675 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20F6A1F017E95B6F00BAD261 /* sdl.c */;
|
||||
name = "sdl.c: 77";
|
||||
rLen = 0;
|
||||
rLoc = 2111;
|
||||
rType = 0;
|
||||
vrLen = 760;
|
||||
vrLoc = 1276;
|
||||
};
|
||||
2050562017ED9E6100F572B7 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20568DD217EBE9490022F314 /* game.c */;
|
||||
name = "game.c: 12";
|
||||
rLen = 31;
|
||||
rLoc = 149;
|
||||
rType = 0;
|
||||
vrLen = 247;
|
||||
vrLoc = 0;
|
||||
};
|
||||
2050562217ED9E6100F572B7 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20568DD217EBE9490022F314 /* game.c */;
|
||||
name = "game.c: 12";
|
||||
rLen = 31;
|
||||
rLoc = 149;
|
||||
rType = 0;
|
||||
vrLen = 247;
|
||||
vrLoc = 0;
|
||||
};
|
||||
20567ECA17E95DEC0002B1A9 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20F6A1C417E95AD300BAD261 /* common.h */;
|
||||
|
@ -72,33 +150,20 @@
|
|||
vrLen = 62;
|
||||
vrLoc = 0;
|
||||
};
|
||||
20567EE317E95E0D0002B1A9 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20F6A1D417E95AD300BAD261 /* stubs.h */;
|
||||
name = "stubs.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 332;
|
||||
vrLoc = 0;
|
||||
20568DD217EBE9490022F314 /* game.c */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {519, 476}}";
|
||||
sepNavSelRange = "{149, 31}";
|
||||
sepNavVisRange = "{0, 247}";
|
||||
};
|
||||
};
|
||||
20568DD417EBE9490022F314 /* player.c */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {519, 392}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {519, 462}}";
|
||||
sepNavSelRange = "{614, 0}";
|
||||
sepNavVisRange = "{0, 483}";
|
||||
sepNavVisRange = "{0, 508}";
|
||||
};
|
||||
};
|
||||
20568DE617EC16C60022F314 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20F6A1F017E95B6F00BAD261 /* sdl.c */;
|
||||
name = "sdl.c: 37";
|
||||
rLen = 0;
|
||||
rLoc = 833;
|
||||
rType = 0;
|
||||
vrLen = 401;
|
||||
vrLoc = 355;
|
||||
};
|
||||
20568DE717EC16C60022F314 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20F6A1CF17E95AD300BAD261 /* main.h */;
|
||||
|
@ -129,60 +194,6 @@
|
|||
vrLen = 374;
|
||||
vrLoc = 0;
|
||||
};
|
||||
20568DEA17EC16C60022F314 /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 20568DD417EBE9490022F314 /* player.c */;
|
||||
};
|
||||
20568DEB17EC16C60022F314 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20F6A1F017E95B6F00BAD261 /* sdl.c */;
|
||||
name = "sdl.c: 37";
|
||||
rLen = 0;
|
||||
rLoc = 833;
|
||||
rType = 0;
|
||||
vrLen = 401;
|
||||
vrLoc = 355;
|
||||
};
|
||||
20568DEC17EC16C60022F314 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20F6A1CF17E95AD300BAD261 /* main.h */;
|
||||
name = "main.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 73;
|
||||
vrLoc = 0;
|
||||
};
|
||||
20568DED17EC16C60022F314 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 2090287B17E95E780051A253 /* timesynk_Prefix.pch */;
|
||||
name = "timesynk_Prefix.pch: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 179;
|
||||
vrLoc = 0;
|
||||
};
|
||||
20568DEE17EC16C60022F314 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 002F3A2B09D0888800EBEB88 /* SDLMain.h */;
|
||||
name = "SDLMain.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 374;
|
||||
vrLoc = 0;
|
||||
};
|
||||
20568DFA17EC16C60022F314 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 20568DD417EBE9490022F314 /* player.c */;
|
||||
name = "player.c: 29";
|
||||
rLen = 0;
|
||||
rLoc = 614;
|
||||
rType = 0;
|
||||
vrLen = 483;
|
||||
vrLoc = 0;
|
||||
};
|
||||
2090287B17E95E780051A253 /* timesynk_Prefix.pch */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {600, 253}}";
|
||||
|
@ -350,9 +361,9 @@
|
|||
};
|
||||
20F6A1D417E95AD300BAD261 /* stubs.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1026, 230}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1026, 253}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 332}";
|
||||
sepNavVisRange = "{0, 350}";
|
||||
};
|
||||
};
|
||||
20F6A1E917E95B5200BAD261 /* PBXTextBookmark */ = {
|
||||
|
@ -377,9 +388,9 @@
|
|||
};
|
||||
20F6A1F017E95B6F00BAD261 /* sdl.c */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {519, 798}}";
|
||||
sepNavSelRange = "{833, 0}";
|
||||
sepNavVisRange = "{355, 401}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 1008}}";
|
||||
sepNavSelRange = "{2111, 0}";
|
||||
sepNavVisRange = "{1822, 289}";
|
||||
};
|
||||
};
|
||||
20F6A1F117E95B6F00BAD261 /* sdl.h */ = {
|
||||
|
@ -450,26 +461,26 @@
|
|||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 401336609;
|
||||
PBXWorkspaceStateSaveDate = 401336609;
|
||||
PBXPerProjectTemplateStateSaveDate = 402118495;
|
||||
PBXWorkspaceStateSaveDate = 402118495;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
2002F0D917E972B3003CF277 /* PlistBookmark */ = 2002F0D917E972B3003CF277 /* PlistBookmark */;
|
||||
2007C92E17ECF2EB00268653 /* PBXTextBookmark */ = 2007C92E17ECF2EB00268653 /* PBXTextBookmark */;
|
||||
2007C93017ECF2EB00268653 /* PBXTextBookmark */ = 2007C93017ECF2EB00268653 /* PBXTextBookmark */;
|
||||
203B68D117F7D77900272675 /* PBXTextBookmark */ = 203B68D117F7D77900272675 /* PBXTextBookmark */;
|
||||
203B68D217F7D77900272675 /* PBXTextBookmark */ = 203B68D217F7D77900272675 /* PBXTextBookmark */;
|
||||
203B68D317F7D77900272675 /* PBXTextBookmark */ = 203B68D317F7D77900272675 /* PBXTextBookmark */;
|
||||
203B68E717F7DA2400272675 /* PBXTextBookmark */ = 203B68E717F7DA2400272675 /* PBXTextBookmark */;
|
||||
2050562017ED9E6100F572B7 /* PBXTextBookmark */ = 2050562017ED9E6100F572B7 /* PBXTextBookmark */;
|
||||
2050562217ED9E6100F572B7 /* PBXTextBookmark */ = 2050562217ED9E6100F572B7 /* PBXTextBookmark */;
|
||||
20567ECA17E95DEC0002B1A9 /* PBXTextBookmark */ = 20567ECA17E95DEC0002B1A9 /* PBXTextBookmark */;
|
||||
20567ECF17E95DEC0002B1A9 /* PBXTextBookmark */ = 20567ECF17E95DEC0002B1A9 /* PBXTextBookmark */;
|
||||
20567ED217E95DEC0002B1A9 /* PBXTextBookmark */ = 20567ED217E95DEC0002B1A9 /* PBXTextBookmark */;
|
||||
20567ED517E95DEC0002B1A9 /* PBXTextBookmark */ = 20567ED517E95DEC0002B1A9 /* PBXTextBookmark */;
|
||||
20567EE317E95E0D0002B1A9 /* PBXTextBookmark */ = 20567EE317E95E0D0002B1A9 /* PBXTextBookmark */;
|
||||
20568DE617EC16C60022F314 /* PBXTextBookmark */ = 20568DE617EC16C60022F314 /* PBXTextBookmark */;
|
||||
20568DE717EC16C60022F314 /* PBXTextBookmark */ = 20568DE717EC16C60022F314 /* PBXTextBookmark */;
|
||||
20568DE817EC16C60022F314 /* PBXTextBookmark */ = 20568DE817EC16C60022F314 /* PBXTextBookmark */;
|
||||
20568DE917EC16C60022F314 /* PBXTextBookmark */ = 20568DE917EC16C60022F314 /* PBXTextBookmark */;
|
||||
20568DEA17EC16C60022F314 /* PBXBookmark */ = 20568DEA17EC16C60022F314 /* PBXBookmark */;
|
||||
20568DEB17EC16C60022F314 /* PBXTextBookmark */ = 20568DEB17EC16C60022F314 /* PBXTextBookmark */;
|
||||
20568DEC17EC16C60022F314 /* PBXTextBookmark */ = 20568DEC17EC16C60022F314 /* PBXTextBookmark */;
|
||||
20568DED17EC16C60022F314 /* PBXTextBookmark */ = 20568DED17EC16C60022F314 /* PBXTextBookmark */;
|
||||
20568DEE17EC16C60022F314 /* PBXTextBookmark */ = 20568DEE17EC16C60022F314 /* PBXTextBookmark */;
|
||||
20568DFA17EC16C60022F314 /* PBXTextBookmark */ = 20568DFA17EC16C60022F314 /* PBXTextBookmark */;
|
||||
2090289817E95F9E0051A253 /* PBXTextBookmark */ = 2090289817E95F9E0051A253 /* PBXTextBookmark */;
|
||||
2090289D17E95F9E0051A253 /* PBXTextBookmark */ = 2090289D17E95F9E0051A253 /* PBXTextBookmark */;
|
||||
2090289E17E95F9E0051A253 /* PBXTextBookmark */ = 2090289E17E95F9E0051A253 /* PBXTextBookmark */;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
002F3A0009D0884600EBEB88 /* SDL.framework in Copy Frameworks into .app bundle */ = {isa = PBXBuildFile; fileRef = 002F39F909D0881F00EBEB88 /* SDL.framework */; };
|
||||
002F3A2E09D0888800EBEB88 /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 002F3A2C09D0888800EBEB88 /* SDLMain.m */; };
|
||||
002F3AF109D08F1000EBEB88 /* SDLMain.nib in Resources */ = {isa = PBXBuildFile; fileRef = 002F3AEF09D08F1000EBEB88 /* SDLMain.nib */; };
|
||||
2050563317ED9E9700F572B7 /* wall.c in Sources */ = {isa = PBXBuildFile; fileRef = 2050563117ED9E9700F572B7 /* wall.c */; };
|
||||
20568DD617EBE9490022F314 /* game.c in Sources */ = {isa = PBXBuildFile; fileRef = 20568DD217EBE9490022F314 /* game.c */; };
|
||||
20568DD717EBE9490022F314 /* player.c in Sources */ = {isa = PBXBuildFile; fileRef = 20568DD417EBE9490022F314 /* player.c */; };
|
||||
20F6A1C317E95AAA00BAD261 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 20F6A1C217E95AAA00BAD261 /* main.c */; };
|
||||
|
@ -43,6 +44,9 @@
|
|||
002F3AF009D08F1000EBEB88 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/SDLMain.nib; sourceTree = "<group>"; };
|
||||
089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||
2050563017ED9E9700F572B7 /* display.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = display.h; path = ../display.h; sourceTree = SOURCE_ROOT; };
|
||||
2050563117ED9E9700F572B7 /* wall.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wall.c; path = ../wall.c; sourceTree = SOURCE_ROOT; };
|
||||
2050563217ED9E9700F572B7 /* wall.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wall.h; path = ../wall.h; sourceTree = SOURCE_ROOT; };
|
||||
20568DD217EBE9490022F314 /* game.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = game.c; path = ../game.c; sourceTree = SOURCE_ROOT; };
|
||||
20568DD317EBE9490022F314 /* game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = game.h; path = ../game.h; sourceTree = SOURCE_ROOT; };
|
||||
20568DD417EBE9490022F314 /* player.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = player.c; path = ../player.c; sourceTree = SOURCE_ROOT; };
|
||||
|
@ -140,6 +144,9 @@
|
|||
20F6A1CF17E95AD300BAD261 /* main.h */,
|
||||
20F6A1D017E95AD300BAD261 /* net */,
|
||||
20F6A1D417E95AD300BAD261 /* stubs.h */,
|
||||
2050563017ED9E9700F572B7 /* display.h */,
|
||||
2050563117ED9E9700F572B7 /* wall.c */,
|
||||
2050563217ED9E9700F572B7 /* wall.h */,
|
||||
);
|
||||
name = "Other Sources";
|
||||
sourceTree = "<group>";
|
||||
|
@ -227,6 +234,7 @@
|
|||
20F6A20317E95BC400BAD261 /* sockets.c in Sources */,
|
||||
20568DD617EBE9490022F314 /* game.c in Sources */,
|
||||
20568DD717EBE9490022F314 /* player.c in Sources */,
|
||||
2050563317ED9E9700F572B7 /* wall.c in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue