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).

netcode
kts 2013-09-28 20:50:52 -07:00
parent 3d1fb1de41
commit 2d7a45e0b5
26 changed files with 367 additions and 146 deletions

View File

@ -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.

View File

@ -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

8
NOTES 100644
View File

@ -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;

15
display.h 100644
View File

@ -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
View File

@ -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
View File

@ -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

View File

@ -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();
}

View File

@ -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

View File

@ -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
View File

@ -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.

15
map.h 100644
View File

@ -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

View File

@ -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;
}
}

8
wall.c 100644
View File

@ -0,0 +1,8 @@
#include "wall.h"
WallTile walls[] = {
{ WALL_STONE, MATERIAL_STONE, "stone" },
{ WALL_WOOD, MATERIAL_WOOD, "wood" },
{ WALL_STEEL, MATERIAL_STEEL, "steel" }
};

18
wall.h 100644
View File

@ -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

View File

@ -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>

View File

@ -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 */;

View File

@ -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;
};