From 1f973fc86574a40fc72da119c98749ab884d7cee Mon Sep 17 00:00:00 2001 From: kts Date: Thu, 19 Sep 2013 22:45:19 -0700 Subject: [PATCH] Added basic player movement through playerMove(direction, distance). Also added an interface through which player commands are attached to a command id, so as to allow for functions to be called via a command id or, if later implemented, a string. Finally, implemented the moving of an @ in curses or a square in SDL via the arrow keys. --- Makefile | 11 +- game.c | 13 ++ game.h | 14 ++ interface/curses.c | 18 +- interface/sdl.c | 19 +- main.c | 6 + player.c | 28 +++ player.h | 28 +++ .../timesynk.pbxindex/categories.pbxbtree | Bin 2508 -> 2508 bytes .../timesynk.pbxindex/cdecls.pbxbtree | Bin 491880 -> 492016 bytes .../timesynk.pbxindex/decls.pbxbtree | Bin 492148 -> 492148 bytes .../timesynk.pbxindex/files.pbxbtree | Bin 6172 -> 6172 bytes .../timesynk.pbxindex/imports.pbxbtree | Bin 15036 -> 15296 bytes .../timesynk.pbxindex/pbxindex.header | Bin 24 -> 24 bytes .../timesynk.pbxindex/refs.pbxbtree | Bin 372840 -> 373360 bytes .../strings.pbxstrings/control | Bin 1048596 -> 1048596 bytes .../strings.pbxstrings/strings | Bin 993957 -> 994274 bytes .../timesynk.pbxindex/subclasses.pbxbtree | Bin 2900 -> 2900 bytes .../timesynk.pbxindex/symbols0.pbxsymbols | Bin 1590152 -> 1594376 bytes xcode/timesynk.xcodeproj/kts.mode1v3 | 44 ++-- xcode/timesynk.xcodeproj/kts.pbxuser | 192 +++++++++++------- xcode/timesynk.xcodeproj/project.pbxproj | 12 ++ 22 files changed, 284 insertions(+), 101 deletions(-) create mode 100644 game.c create mode 100644 game.h create mode 100644 player.c create mode 100644 player.h diff --git a/Makefile b/Makefile index 3d877dc..bfebd38 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ CC = gcc PREFIX = ./ BINARY=timesynk -OBJS = main.o net/sockets.o +OBJS = main.o game.o player.o net/sockets.o CURSES_OBJS = interface/curses.o SDL_OBJS = interface/sdl.o DEBUG = -g @@ -17,15 +17,12 @@ $(BINARY): $(OBJS) $(CURSES_OBJS) sdl: $(OBJS) $(SDL_OBJS) $(CC) $(OBJS) $(SDL_OBJS) $(SDL_LFLAGS) -o $(BINARY) - curses: $(OBJS) $(CURSES_OBJS) $(CC) $(OBJS) $(CURSES_OBJS) $(CURSES_LFLAGS) -o $(BINARY) xcurses: $(OBJS) $(CURSES_OBJS) $(CC) $(OBJS) $(CURSES_OBJS) $(XCURSES_LFLAGS) -o $(BINARY) - - all: $(BINARY) clean: @@ -34,6 +31,12 @@ clean: main.o: main.c stubs.h interface/curses.c net/sockets.c $(CC) $(CFLAGS) -c main.c +game.o: game.h game.c + $(CC) $(CFLAGS) -c game.c + +player.o: game.h player.h player.c + $(CC) $(CFLAGS) -c player.c + sockets.o: net/sockets.c stubs.h $(CC) $(CFLAGS) -c net/sockets.c diff --git a/game.c b/game.c new file mode 100644 index 0000000..65378d4 --- /dev/null +++ b/game.c @@ -0,0 +1,13 @@ +/**** + +***/ +#include "main.h" +#include "common.h" +#include "game.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); +// } +} diff --git a/game.h b/game.h new file mode 100644 index 0000000..76704ae --- /dev/null +++ b/game.h @@ -0,0 +1,14 @@ +#ifndef GAME_H +#define GAME_H + +/* The Eight Holy Directions */ +#define NORTH 8 +#define SOUTH 2 +#define EAST 6 +#define WEST 4 +#define NORTHEAST 7 +#define NORTHWEST 9 +#define SOUTHEAST 1 +#define SOUTHWEST 3 + +#endif diff --git a/interface/curses.c b/interface/curses.c index ffc2a96..1dbebdc 100644 --- a/interface/curses.c +++ b/interface/curses.c @@ -1,5 +1,7 @@ #include #include "curses.h" +#include "../player.h" +#include "../game.h" #include "../main.h" #include "../common.h" @@ -34,11 +36,25 @@ void interfaceLoop() { case 'Q': is_running = 0; break; + case KEY_UP: + (*player_commands[PLAYER_MOVE])(NORTH, 1); + break; + case KEY_DOWN: + (*player_commands[PLAYER_MOVE])(SOUTH, 1); + break; + case KEY_RIGHT: + (*player_commands[PLAYER_MOVE])(EAST, 1); + break; + case KEY_LEFT: + (*player_commands[PLAYER_MOVE])(WEST, 1); + break; } } void interfaceDraw() { - + clear(); + mvwaddstr(screen, player.y, player.x, "@"); + refresh(); } void interfaceClose() { diff --git a/interface/sdl.c b/interface/sdl.c index dfeccab..3e9fd2b 100644 --- a/interface/sdl.c +++ b/interface/sdl.c @@ -5,6 +5,8 @@ #include "sdl.h" #include "../main.h" #include "../common.h" +#include "../player.h" +#include "../game.h" int interfaceInit() { // Load it up! @@ -30,15 +32,28 @@ void interfaceLoop() { is_running = 0; break; case SDL_KEYDOWN: - if (event.key.keysym.sym == SDLK_q) + if (event.key.keysym.sym == SDLK_q) { is_running = 0; + } else if (event.key.keysym.sym == SDLK_UP) { + (*player_commands[PLAYER_MOVE])(NORTH, 1); + } else if (event.key.keysym.sym == SDLK_DOWN) { + (*player_commands[PLAYER_MOVE])(SOUTH, 1); + } else if (event.key.keysym.sym == SDLK_RIGHT) { + (*player_commands[PLAYER_MOVE])(EAST, 1); + } else if (event.key.keysym.sym == SDLK_LEFT) { + (*player_commands[PLAYER_MOVE])(WEST, 1); + } break; } } } 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}; + SDL_FillRect(screen, &player_rect, SDL_MapRGB(screen->format, 255, 255, 255)); + SDL_Flip(screen); // redraw! } void interfaceClose() { diff --git a/main.c b/main.c index 59a4a2c..97b832a 100644 --- a/main.c +++ b/main.c @@ -1,6 +1,8 @@ #include "main.h" #include "common.h" #include "stubs.h" +#include "game.h" +#include "player.h" // TODO: add arguments, so user can connect to server via cmdline option int main(int argc, char *argv[]) { // initialize our interface system (ncurses, SDL, etc.) @@ -12,6 +14,10 @@ int main(int argc, char *argv[]) { return ERROR; } is_running = 1; + + // h'okay, let's add our default player commands + playerSetCommand(PLAYER_MOVE, playerMove); + // start our program loop! while(is_running) { if (is_networking) diff --git a/player.c b/player.c new file mode 100644 index 0000000..d5a4b89 --- /dev/null +++ b/player.c @@ -0,0 +1,28 @@ +/**** player.c - player creation, movement, etc. functions +This file contains the functions for initializing and commanding the player. + +****/ +#include "player.h" +#include "game.h" + +void playerSetCommand(int command_id, void(*function)) { + player_commands[command_id] = function; +} + +/* in-game movement stuff */ +void playerMove(int direction, int distance) { + switch(direction) { + case NORTH: + player.y -= distance; + break; + case SOUTH: + player.y += distance; + break; + case EAST: + player.x += distance; + break; + case WEST: + player.x -= distance; + break; + } +} diff --git a/player.h b/player.h new file mode 100644 index 0000000..6830ed1 --- /dev/null +++ b/player.h @@ -0,0 +1,28 @@ +#ifndef PLAYER_H +#define PLAYER_H + +#define MAX_PLAYER_COMMANDS 128 +/* list of standard command ids */ +#define PLAYER_MOVE 1 +#define PLAYER_KICK 2 +#define PLAYER_TUMBLE 3 + +typedef struct { + int x; + int y; +} player_struct; +player_struct player; + +void (*player_commands[128]) (); // pointer to array of command functions + +/** playerSetCommand +This function ties a command function to a command id, as contained within the player_commands array. After tying a command to a function, a command can be directly called with the following syntax: + (*player_commands[PLAYER_MOVE])(argument_1, argument_2, ...) +or via the playerCommand helper function: + playerCommand(PLAYER_MOVE, argument_1, argument_2, ...) +**/ +void playerSetCommand(int command_id, void(*function)); + +void playerMove(int direction, int distance); + +#endif diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/categories.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/categories.pbxbtree index 8d47c701ea736b7b9848c777a040d5cabae1aa39..b10b89b61ad11c5e85667df496ad1dcc73de15d1 100644 GIT binary patch delta 120 zcmX>jd`5VJG^ZW|7;vnasG`R7?bb%0*{qCQlV7kZah==4!1T2gh_`PRVXJ3kWoKYu zmYHn8DmHl=yE;2lvk?OWC(q2+4pjMc_+6XWYXj<9J@K$7#P?mFfen}O)lY7 UpFE$Fo9){z24*g<$s0Ij01luboB#j- delta 116 zcmX>jd`5VJG^Z{D6iif6WBRgUqt9$sM%KwMSe3W}4>Bu_dZ;8-(x4ZG&#AZDS-@7ecGVq#-rpD=j~$8J_u1_mIjf>V8R0yE3x`JCKr PUsfLQ?ZT8k*KBNt{Fgc%2=3Z}MH)HJ09W-^kr;O0G2NN4&B{o^;kd(S=R z-1GJB>ubxo`9jW)adstRqjw(7nkyrxj%N|+tTax zGdtSIn4-v;=}ocH8H=mQc?((}$D-{Q6*-%+-Vs^dnK#LSu{R(14ii=HGvVCDdLo=| zWBlR~Cf-;D`4D82W2ZVha(Py){N4Evkh2dSPQ-R!I_61or{efIn4X8MKeo7c*A#NU zV$wIt^e6G#sXSL-%j2u`!MK%Sew@$$G=p5IdheKU4L`@peFU3EGioV+*Tcu@Q_Fc( zsz{_Wk;nmZ8Qa&u*ulfP`>32?%6`PlJmjXsWS)6(6<@m|$%!-Jj>X-7gRsJky2Oto z#XfAtnvZ&T?QVX*p14NjQD6yEEmw5q8gbHi*NV^Xo0Y}n)XR)Hy-b|H1rOE0lRybj z1|Tv|74Rrf!^B_^ycj%I_iYj-=7}beeSqATan%LWm?Iy|h2;r z)(jNM!`Ufr9TRtxp}H5PS&Gam&D-CX16!o@j5pCjC|Tp!Kl%JZOar zctB^ATU9}kNW&c6V!Zt|;CGB4dWP}XG$73QTPMxta;tqZxv#)ixA8Yxivm1dFYmNw zNs$QXXs7jiZ#*nSXqbH6bHAnNepwqdgecY#(Fh1mnDm$?LgD zXuB>xY(1}!R;yo{&^y*-FS+QLZ;Yuo)))(>s;L+geThlQpx%U9Zvk%vw|BLwhs@cy z^|YUyHVC$x+)u0(9MNsLV3nZUh+!~ae{jJnGh;4VpJS?)Bf2ir|EX2u2{>qxCkAJ) zg5P8OGA7G;4ePjh_Of-o91bk(gjtYncjc!$+i?66pdlPF-47f!Lt%Sf1*SRNVF!GP z3}l@L6zC-#_A>KfhkYas8udF z#Iy9+W1RJiF@NlC2%lbFD|EfW`8*iDW0nLE}%ytovV8m&|DL&qWloK zQ6%zbQ`thlPLiT@yXo$vO(d+*)gp6qysCImI3JstRjP_3fq&~Q z3spP0U*IaQPJ3K!y-#}Z(y4QBoT(4g@i~!eTc;JKF%$=)C|qs@Bgg;07+7xuMy}ce ze#eBX)eJ$dA5lIs(yY0<_A?@L_DQvuqP>Qv!{ecJjPxRl{s{r1a3NyT3J&gf~H|pY_ zs$Y%7w?PNPlJpbJs?APeG$%v%G^3c6-h1hLlkfc)#o+kJ@bprhi1XS11Kue|FaQ7m delta 1774 zcmZ8hcTAO66u;{`_X)BQ5oIU}qBdBcf)-HJS8b_JsWXxqwJx-U3PG`vD&hba4%F*- zR_sV)9jLGMVz7>eI8s5|21ixY3W*VH(C>Rl9Z3(Q{iiSa<&5u)-+lMo)3Q3^aZ$w9 zu0~%%d^VowF@nb>6E(Zud~qKhW;A&nbP7Y8t!&fq{V*y&wmKz<9_2s*C z<_;RB`sT1+YGMx4l9sL|{7s3r<+9(seF6v{bc+yAJz-a#so)hXg|qGTY9NzIdd>>w zT@KbKSapxii{SmcA^Y+~{&sf~_7@>x&4?C4fBFD14Kat1B)4u(gG*G*b1|0O9tbT~uMDh+)L0zKIleeJ4^R_om%cs6#l_LWc-v zuD|sfhgcU6RyL;X)&6;6QW&PqEfvGm!BUY{R_-NqQ>ow(Xbr`7uQ4nWxd$Ql+oyJl z*idyKU4kFcm4wn=gf~VZ9R=MkBRtBU>(K8dpc7KKVkS2ND5U0qG^g` z<|T};)#s~3hCi4C@OFxH)K#&7;x(7lh!j;*BSs+$oA#>}H*pdMW1+da`I^YEg_#pE zeh(IyjB+2Lw<1u_K>bTS>y~JANapE-Raz$D%AlnTB$QZg^@82e5Wx#wE2Wg2(C! zmf;UHP|bR23=ceqkMAN*@o0SLdlwNl@-uz>rO}i~Ba~|pd@iXA=Z+B7!wy?;sE^no zPTjM^)DDvN!7zp+$v9n*2nRUrs(K{B9&d8$DG^n9NTF6$CPBCgOfk}QY%)ADz?^}s z%C-L}kgQ`|AVp1gz?hCSIwqi~1ter|5#m@QABxl>+pVc86h^e3y zW282F%F+Fqxmgc&N+;#a^NT7OFV}(f9ag@rf+xuJ-ptcZseL=9sq*HvoNMqTCH-S&uT* z4orsV1BIWm_+Q&%(=sN@B*-q&1)^_HW33UONZ&6H0J-zJPUv9Sk- z$8%XnWy^lt%Zx>11%BwG#^uPKdP$BfG}N#F*2UaQ+1G4ADloF$+9e;rBm6c9j<(hW!K1%xG}{ diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/decls.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/decls.pbxbtree index 8e77cf491d60186e6abd6977ead6405122bc2536..3bd2bfcd1fc4de718499b7129093eb6ea0dbee23 100644 GIT binary patch delta 1877 zcmYjReNdHE8b2TJd(OQVxWa{dQM_Jl$Z24=JsW^Rf~>0xch*RJBqy&H>9wRtN2Q(COzG4;pdl3hr!gg4JSm3a&}^I zPurG{4wWglk4axLWd!&cf52VO#BdtCTe0{sj*HTb34FiM(qq9zP-8YPjVLz+lM)&z z;@gBb!0eSr7#o*uDi-re5qAL-ZYlOR0d2#Fq#`R|J?~ruXt< z+TP2L&rnVc^zEcMLi9bAlEzrZa;BeXV2nCUMva&yMc;W7tr4r}aE)+0ccnAy!Vboq zt4y4`$#~I4c;5>=#Khou@O|JQcone19IX?R%+)$Em&WfD`BfZcpgBM=fV5Hb-*r+cLU8BzXX1VTDQpk z=}FRqI_Wc58AA)}WnA-gb9=Xpm`J0XOJ$An*%Th6^ZO-9o@we2%K1qmF&dfu1#qY7 zI4BoU(jmEUHIJC+kX(sZ@F4Os#Bhwe(Jf!%V6bTE=I7VXpOwS+t_hT0fNs&HI);ABirsdBhCxhIE>`I2!0dX3_c2O z0l!VrQ7R?L{3c6<(xgfpgQPho@}bmQfV1T*hFfbp@zdKeakYn0t-MFO_>0cM8zLTGg4X+ygkg_hh3AC9B~SY&=BaR`p&$Io$~PFZ%45`aU(}JdH^$ z6Q!R+3c8-xVxs>|(-YIVG^#^=D{#hSbGuV5;-gJrT+J3gY&KisDn@7HD$nD0@xgtg z7}uK_E6+vZbE%|Dr57ou6M+Y)!mB6$3KeW9(M6fklaIwk0Q#Bd9wx3|L1(`XuN*VJ zS}GHa>M#y0Ff*h25i(JI$;M;ZQmRXhDAT!`vDA?sWqRsF5#^WZJ;LwKhUhAYAF0_5 zy0lVP@=W{D^Z);t(2G)GRb;;D6L-;bG5wR6mUtcY#Rt)+@dnT|5;rmK0RI+f$G8*R z0Gu-iVtg`nKcGMMp|6Xs>Cl~NS}OHD=1Qer;7wkb_LoC#OyrDkK5UXA`;OkGtv zi~F7J*g_oVS@0j}-;ZeFRnA5%bkVKf>6dINYLcnx3Ej+1e7jasvV1e8T2GWxC(OOo zdaQY}PA{altMw_#$I-ePJxz$~Vbio#7w~zeXRD6$ENa@O=SrmRI(2Q=nvcBuT0ILf ShW72yF|)T)YbxKNL*hRgRzB+h delta 1858 zcmYLKe^Av`7Qer~_dfaYeD5J(`g~-pnq*Qgt_2c2V+2i6B&#VAVbw9$%o;0_N@-|P zqof{opw!jUUDur^>rEas$L9}5Ar*18LLZiy?KVqc&iDI7gT@Z-AN!s8%sKab@44r5 z&pqc}r#9f!2I^C-I~hx?`@}yunePvcOU_J8X4cA`jG4~~heFGeUkG{PRQUVkQXXd? zVj^~p3HwAiKlQ01DPkkTyUXWr?IbaAZA#cx;l5MbOKH+S!v1yB#!1n8cX-KXB2nAp z$oOh_#o;Zpw6lvQM{$UcA9eejKQZC_N`}Qu^m&;yU*k`=^Cn?LY!tbqV_iBg4ru!a znv#MSgS=W;US^eShlK@vbij!x_cZ#KO(4Ex zjOW5_^LaK0oIRhfC)z&p3gX3bzF29ekp^uzVD(tz#K1OufDR@7VY$>6g zNxq2C!=!RCX`RNZ&(u<$V$Y#TO*HvolJApzoa7d`zDH3NJxcm!^rMOhqSCcjJ((ox zE;3Q~AI9F9!1&prjHLlQwog@R`%5CF@!&osENy3!XDxK3iDbACQQj1LAQ63(kT;n4 z@F^x{UZ+qeQ5{r15$AZxHJ|Zm<)Mo8Irzk36(wT#(ToQOv&oaZVjBnm3m!I^Slyz0 zhPq`G)*n|kA2gK7f_Y5TG(f{i)kkS?;f8j#JD#UO{&_VG-aN0eIfIt-YC0Tg=0S)Y zkp>@$s;*nHLcV2HNAqJe=0T3^z38S&VPMMhuK z+HR)7&rsmj{|?we(%+_J6_9*~WFg5A$>}5;uxPMOj1RSKOGp>x-AuH6%*08m*LFIk zcB3%t$GxW^RqyMO#-Nfn}oV;2e zNYKtRG}yGKPN$Gg2iup3{zm<&PutWivEz7lm+tYT*Z~?m&qVP#;`IUPQ6{=}Ku4*W zgoF3%{|X9u7xW*{57Kp#AJG%w`G_vLRnx~JI>+U9KB6!e7&prqn?H$8VGZG8y zSJP?-aKRum<^k@7wS^{VME3={sJp44^2p>VG9#g6hs=QTB6HuZHKE9KTGTx&icN7` zkIh6+jL-|6wv}mlm}ngb&BZ2HitbdLJj=W#+zzAo)b93r3fG36C8mPI>8QBPZC8=C znyh;WdtqL#9Dy&Fn%_i5?@A_JOQ;SGQktJ3oqEvhCw&^}0~f>r(y2dPb74~{AA`pq zF)eX$^NP^WRACCFREMCe!sJ*!W>&3%+bhje7K`4U?z%`on^$57l?h{M1e z@Dl#=XCnp;++V_8hu4>xjh3_)oxu8MO^Cyl8l&OvmF5q_>2{;w8|XqP6XCNb^r*FB>np}^N^{3*b1&rn URSko*HUCTVt*v0$8j~u12UC22ZU6uP diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/files.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/files.pbxbtree index cc192f0cd2d141fedd5bb9a108df74888f0eeab5..67744a233cc3ecb60665b3fe0509d70db97b31d9 100644 GIT binary patch delta 139 zcmbPZFvnnmxaD;Q1_pZ|h5->E;|c>aM?M47Yheav_Gdu+o`LCWG7#r6Fnx{$%EiPr3+kkj6kS_q#Wy!$wJ&A$o3pbF> R0~F_FVEWCxd5u^BBLE{@9?1Xz delta 139 zcmbPZFvnnmxaDOA1_pZ|h5->E;|c@QX8{JL*TM|U>~p{pOka~3n7-yQFnzZNVnqgK z4$F-J(qfL>3=HBD3`{RsfLINPcQP=&Y60px2~;f$q_+X_Vj$ZVNb@o<{bpuh`k@6h Sp$3Rs8JK>a+Pp@rfDr)H(IAxo diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/imports.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/imports.pbxbtree index a26669dde43e399ce653f94caec7eaa084956988..6d1fc6fd59811b1fdc943ec88c766d48ab97dc62 100644 GIT binary patch delta 395 zcmXw#yGjE=6o${9amj8}+~|S`5)f>(QCK%IyCR|%f{l%ef~a^QNE)Ld1m8d#aUQ^+ zO+ZA#;tf-z^Z_gs+f*?{Ac__V`X`G6AOD#%Kj$)qR55+pyZB5*7vTRG2wq5NX>b4x z;_qGJnggzhKf91iAGRZJ!}2f9xwY)UxIx8C1#0!RYa-Yodt)R16eH z;|Z_@JPd@l+7z@KZ+nO*!49~^Jpr8to8S=(^bpq-E#+RCXH+*^U#fY_% zabJqDdO!S~O+V_agL~8pVfixR8~GX?kV!o}go=6xkyRotrHJe*@mrWEk|i$x5=C=x S;~$)YjN6txbmru!Q2zkexM~9c delta 268 zcmX?5zNd78xa&>^28IPd3}MI6zB)26bJzm;B0$;^$S-1G`tHoY z^jeaEsXLs3X+Dr%ux)aJx#Gs!H!RFdpQSeEur6k1iEWv^q5bA*C9{@F#PUHXp diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/pbxindex.header b/xcode/build/timesynk.build/timesynk.pbxindex/pbxindex.header index f9db5e178de6d500db296f2a949580117c124f3b..536b12cff34cdebd974dee7df3448caef8d8fd78 100644 GIT binary patch literal 24 ccmXTO%&TBvV3B5E`eMSsz#ss``asMG06P2wNdN!< literal 24 ccmXTO%&TBvV3B5E=HOvqVBi2^DIjJ904r(&82|tP diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/refs.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/refs.pbxbtree index 1179f3cf4bdb9d41cdbdb445ef5f25f3f20027c2..bb85351a8d5d647edc52d47383213b8bd60747fe 100644 GIT binary patch delta 3627 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 E2c1R5!vFvP delta 3398 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 KP_<~lJ^u%^GxDSW diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/strings.pbxstrings/control b/xcode/build/timesynk.build/timesynk.pbxindex/strings.pbxstrings/control index 938e53963cc2db01565b387b2e17bfa8291a3db1..03553eda2592a70a7439a4143df016e9565dae0d 100644 GIT binary patch delta 3113 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 IA*-AH54^v-CIA2c delta 2962 zcmYLLdr*~S8vma6yMO1L@8clnaPc4vPRtl$6v8P%j9=hqDA`f3pgT->RG+W$*cooEq$oN@q|IaQmBFGYjFB zVCl?a3FLq~F*q3a2`Efp7Y@E>zvUNw!9IVh1}RMyN!8%s2d*aV05F493o-!iX=+QZ zc0VSVqa(ta5hhrP=W^HlU87@7St;q@;8`DP8cK2TtM@g{UFZS5DRbeNJ>yL=JP;q% zl$DwdV$-hFb-E}B&wnFqsP724mp3J+dELtd-P0&Md_PbJp}$~h+D--L@*1WxR;r)` z^K;50Kn=E))Hy*6`qo9`Cxtjh!||xXve_8pl|m)p!E55bzoBG z!HGIk20eJAp;rMZ;EoOszS!>t*3^6`2d?k~Q->az&q0X}ZvT@R1(m^uO9JD94^c7-PKN zG`nv(d;(&?orf3igEy<}&f{7bfr{P7VU@!EIgQSffFfvk=54Svpjx8w>idu)^6QCM z&<8ctFP``t+*Ct-+I^Rx6;!PF9MYWjo=H~}RsA4NPl8Ez(0K!@MMV~1(el&w6E~d+ zp=38C zgUYMv+r)OL0GPRzEr&o%l-*v#-hgymv5gf2II-<ct;Y0^N$*{4Dja&A{bVoQo zdy*A8U>_+LT_3Phvih@P@#6uuEu9F+{E@BuCEaP;EcOyuSn-rdJW~OA*ttXOzmw3} za!921v#|CxvD%~~7v2&rMpwTMio~54Z~Z|WRtdU~Pm9Gf=)7-C+{W>0{8a1}IeSU= zj?cunK)i#_F{F9% zItZ?|vtO(dsIq9gJ4wo>LT)5UN5Y{P+p?sLJen%?!_G&i>w$A7*Gbp>{K!Gck}0ax zCH1P{CT-%>F)2F=n7yc9DyBz6zhu+HHy~Bh`Gx`MdNd(g`wwZHqmYJsK9lZc_W3H9 zk5ivZLtK_;evqQIKzKY(i}C@&AKPU43P2S$sB(sCKlPH8gcGKm!oiA&m9KM=NOAHJ z5;`88C#wpi@Gb_Eec`G}Vg zzO_oWU6i+Zqg#^P$T=n`c;+LyT!n7icUB&wyf@Cu4(x1 zb)N)Io_VTV^%B?|%B)A!f9HUg3;x+IHAMlEL-dipqiRS~gKw%`6pSZt8CDg^er;5r zi6=+ZtvYp|a8cd4>^4B%aawvbG~w4vv@0P~B7e%%`bBsQPvmOcma(=-8;Bs~P`eM~ zfeI})l78%YN_$x(CRgm#$}OV(@LsJ~f_+%^qLz_DGt>6A7ANs@?`ZFP0^v)rdsI8% zS5!fNbm9qn!<6pB?Niz;8XIi>PCFhAZM@b^;kxOjmTT|Otpc41Q1bQJkr5FaAJvN_ z@Zh;EdhtEnI+tSQ>-vvL(TRdGv23(!KM2a@8=oM;q=kg{76jT%Bh zN-_d`B)XG~lQCq}TM7)?NDLE-46<+qeZ@wk!g)!=%2mc?fJjbUWw}AyUc=_qhNaRf zIlSJmMJU9~Dx)auHnz{9yxrIxMdR1-YvU&}K5W=;jC04RYBB~~P--veFot0_-s&*c z5g%A_(#YVG*L=oMC9IkPYaQsYFMVl}>NT9&?D%3X|1h!Nu_Tt3UoKX@;V5%+*8O{m1C#@9`l*Pp9+U1giVohfZ|`h|<%S$<^oF^^s{kJ)-{J^RS#qs0S z)7CYe-0{Mo^|l@ePsP45i}q-!kOy$_7gj&LKH{w}tsECYlzG$20nT!w-T9q$K=BBQ Zcr3@xd&cR(wclHPAwTnD!L&8Z{sVDf^52Yi^axAFSv{e$Q7?r`>N_W6k5OY>S z^kPq*?>*PPw!Hrt{{0TW@Bk0-2#@guPqBw*c#ao%iC1`yH{ZAWyWOiQ&EO5jOmOK# z6epPvX`Hu{vowPlZwFDbq=@zJyKRK&0O8G2eVVE*oQ7=9leSW@7ioOv7e z@3=F;#0#9xa`6~)=*nc>RPVa6&OyB{OSLL$>r>Ns9RZujMPW0s{xA^mxy+}ujN(~D qBAJXI{ETGCpEA%(qbi^u(NI)sE7Znz479trGVNQ6Mct^CHt-KM;&M6w delta 39 ucmaEK-Dc@kn}!y~7N!>F7M2#)7Pc1l7LFFq7OocV7M>Q~7QQX~OSJ$iISpR` diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/subclasses.pbxbtree b/xcode/build/timesynk.build/timesynk.pbxindex/subclasses.pbxbtree index 5e62c47d5b9f4e35ef3e72f967398dc73f2820f5..e5268dfe443259ff0b824a87b4b440c3d0d38581 100644 GIT binary patch delta 27 jcmca2c13K1FDElI$F0o)oX;59zGgEpy_TI^$R+^*iL?nw delta 27 jcmca2c13K1FDEn8=gQ3ioX;59Udu8tea)U+$R+^*l2!@P diff --git a/xcode/build/timesynk.build/timesynk.pbxindex/symbols0.pbxsymbols b/xcode/build/timesynk.build/timesynk.pbxindex/symbols0.pbxsymbols index e1f9d019d34b20ce7ef1e689afa57e358cbf41e0..4cf6df7f14d78efe845b75403c9ece7e45a71549 100644 GIT binary patch delta 9521 zcmb_ieO#Q?m44@)VP=@`?{|VG6DA)-NE|aUAsG`%F%3FZsZ_F*2KBvdcZ(bYv#1f91J>KdaPWS zcYK<=iBE)FfX3`mE64t%76OJ(&tRE0VAN5I)@9W-ke+wznu*Dv?hss{g^P8EAVbTn z)T!h*mgz#pz>Z6G4GvvIovqWs2sL)CfHncz=(W0P=vRw&k*g(k>6*AUbEB@x11!2r z$IWY*Hr==#*#Cg8i8_kDsS`F?9?{j(rbLgnQ+wp3+sBfOX&3O=2fn>_uIQ zP}xt6r2SQhq#SIH5suURXrSf^$qGPfB$PacQ!HOmIMiP*AH4pD6P zX1R)HPHmMtx$Wd7ayf#i^?yztM}d-Oh3Z?csA>KJhk~P zdX@9Lw(6Tm%NOcH+;_NA-w9L)cIrn!wp8iI$*#FnFQQ%fIej0upWUsmf_OE0vwjk! z=a!tb{x9m&lp4KFFM=_@SD&W#wif*iy_5VWeJ8Dx+x5bm6W`FY7HIPi>+89$?x4P! zN!S03zJlwrhxH=a>NNdP;hiCU1EbM4s#j@s(Hr`4?rQdJ{UNMZdw-$t1R4FMz7uCt z8$P9v&S%Qiy;b1u2VFh;Dr)Q}RvyV9W2{JMHWgxl@d zZK&rqvI#?o+pshlIw_}nuc4ZHv(1JPt{Z4IgeWJIHt-y4v4;#A$7dflj8M+tK|>Su zmVU<&A{~F!&`CWLPa7t=Zt#dy0>6vJuv)4K^lck>wlr3n)2q~D3}yycA{X0dPb)TOx#E2_XQP9 zO3!>j3C7i!$yfzw6QGTnjLpx_L&vEK8I4InKW zjSRWkyU92W=qNY#fg9Z{xZ3CzV>vCAw;QXN2=Pj4)VeB-%saJhr?D2~#7-;%wq0zj z#y-@{E@4;E^#T&t8=1?M^+ui~b$++891u+iNi7NEB#o~72VGo!2G>pGreuXJT?ARp|b0% zMo}6P_ZxWz)z|@J8XATV7)8PBJ!o{&qJbWxI6IzRxD9mnQ6rO89eh%3r~4`640EI7 z8KXk%9WaWVX*^;aV=lyw8O4zu9ydmqd$YeZs;_hY6Q=29z~rl@5ym<;Zi<`*Y@9WT zT#6gaO^n`P(A-If#Fv}PnR{(vbA)GPpv*i*^V%Y2jdEif&Em|=ZZV638U2*GX(RZ( zcbQW(JAAjf_IhB;adT${&=M#tVXjA47AnMew6KTvXEzm^==j;Kg-5A(U`OF3*LUqK zoMUcwTvu34eG|J2c}CQ(n+mH)-c;yx0<(Jyt7&%ZzQPgG^23Eknfk*&C{$@~-I2m3 ziXVNUu%2p5M+<93#d)jnG%HivbYTPPx|%gvnmFBTDan;zONe57ODui#LcG*cPAl3X zmJ*8Xk6ILQ@~*HnuL2!w&hZm1mS$nz%NCUO>I7EZKjgsW@{5|o!V&?<<4`NwSh`oK5G?aEOWJWjz*1s-YUw|>@I5s zb2EB_wGZqGfQa0U)*e=y@U7Nbh*eu|w>E&By4^ZQ2T$B#jSww&T06Pr?pABH37Ab= z>*?tDerpc$=+({L)HW1?M-$ZOu&8sn6Nc+*#vQwhChZ)wXitRISa)`LoyB#NFt* z!6vSWY{KTGp7{n_wFq{jt%*2ztBtv#g}-i_CT)2j$8YJfvBT0v57;`-KTwqJWerN}29IpAj{Sd{=C+&0SbG3P$ql9H9yxb8Xzb5SH<9VB3>(F4GI&dx!p@}#e zs3o)2arAy**N+{w3|;mu$7!*-ddeG2IXeR!f5U4BR9o~D zXL(c?Ia1^5Tnch(sp~ZFzo}A}Xn*?GyG(TLz(&_J*xj34q8IDEz%>V7sNEO2xVM@e zE*>y7zS9MdsZ%>$X>c2>T%tjo{VXPd?yqsx(gOJ^G2C&Lix#L|SG#CXtkzXe&D}S; z8X`dXfQx5Z?SIf!OY$MtA(p3sewS#@YrgLiSMcazS0^%3t$WSYfZ^fSTz#U(Pr2CT zsh*RrDzNKLx_Dh`{YJOSm{lt75K|(t)Xf`Ov#fNBZF<(Yo3W~6jeDG<=eQ$uUDpP8 znu$_W?&j%HXScWyf$WXBRi^wPTXIH3_qavT>%POy;-*d9>88K5=-qCS?o;=;=Qw|&HK#YZ&s|O9 zhxfbF#CVrm<9zu+x45SUA9mA&TH>Hv6xFU?w@Q0TA9IV)M;~{Oo3I_r({8vdyr zg{o`NQ$_y7k31^*$)9>cq`Q9Y(aM4GfL9dK#^qjdmSg97>lN_3KkXf%^@&ToqC|9E z=A8lAcDc8jRXMZUTTivo+r1`Ei|zH!kYC#F<&B_q?Dtl&&SnmH(>zRd-|-&eVY58v zP1ChqgWfT^H1VQWgtT|a>l7h>*_&$}UiGFZM}FN~&chzdctu6)e#<*TuO!~_iaOr= z8?Q)_w*T;o&=0@s?Gd4S-z)C&%#61ja#hPoZxxo+ob*=nwDvlDeKae6wy%@1nh5*S z!km>pan&cvebXW{F7!1}-9V);EjpnqeI>#xwZ2;7V4aV(L5uJ5iIXbV`^JU5n|w}= zXK(gZGYYZWdWS8&+k@z*kG63hK*Mm4*}@1z;?>-}>Or_Pr9 zPlKG@>=)i>yTIRB4BE5HpJwUlzTIEKA~O6h{t&I5YWI(=0uDUmSGeoZ0l)BC@ALjD zTA3a4H?U&YWc{Ma8J+Qq-8P=`E404tL;pCuq}J&JbDU-f)G~Pe1%YNR58DGhbmFiQ zh;aJs*@0OfpJQ&yE$;0TI=ozG;#XqodHoSGIs?;@o2m|P%ro`0r8HF z?hA+-ndl76kzdyp5YB1&X5c94n3_{N_;4UXI{QeVk0-9{yE%EKPY0@KcJi6P49!eD z8|Yz5%fo>xhCcpkAWh8tC?HZVI~FLXec_3KLVIJs4Tu!(dN&|azv#VyXx>Wy7-(XQ zyZ;(sY_%@EB8qL&tca!{W>uP*iUR>f+#{t$3cag(Rw~V4cdS&7(yaJuMPy*CRB533 zy=xVfsTA7)Yk-yKD`WJsXR8un=2l*;hyqY^iJ~$mvX?2foL_mRqHr5^wPKx`xJIc` zt`R>;KCA+uz@y#J__0-8Ls*ZXfx;^f;LN%)eE{1 z^y{DtCBxPJ6c`pTehvolSD>xH6QHe!X^R4Z0FOFQ<7#nSnLb{yNZkM_ZlDTc{$ykehgF@5Zd zAEW8`#pBM>KP=E8I@0mh*B9(fZE6R@mi+PpL(rz{e%I>EZMc-4bsW0~Xa~LobOCFC zUOFO=_W}cXz5?6@ItY9fcot9vo(;SYxD5E_Qb}44Lv&w%Xi!;FA=2acTSJocS$N^| z`CTf)YDv0Y(2I7Fr_bzC9oimTkupQ>Jq!DQ9t&J_zd*$$W z{u>bcI(}4OZXH~B|G$HFgZ~=P1AG(c1!jN&$^4~xfnvT|^n!9>3Um?1-w~LTL;AOQ z{`)}qLyVu5w~sW(iSNTN^v^vA6#R4SzJ`s$+?PIf+^C2 zz-2@T0$#ZebVzdiyb{PPV3fm>v)BP#k)H>AVi5CJNY0fv<j=!_0s9y+V4y9T*VMB z<%dX}@x@gCdq;*3wrzjuXJO>YC>vVyXJA=aoJD7u^;3m)za2TwJ&Z0Xu(ao$drh z42ipZuHt_mKuY<$@k>b}VE=~zVtp=Pe;cn)#_5ysK^)>DkRmXj3`nm1D?9S>)P9|* z?Ls6HpY#mx@8#P+d8;G;n7=PB6isMhzP-38?1kvnUY}&CKpfQPUQjj{>GGXi{@PGQ zx9b=;58;QP7exmfe^DtZKtr2+S*b&v@;sfeE$Mo%bx;yE#;h+h_a-_K#@gIt#!|DzaJXaA(|@iaWA@Re{R z8WfM3E;-o5-#FxDK_`1?PdGS-o?5l64#E^IxjM*S0o3^o!D*0F=LgIACMYToHc@BC z=HNfeDZS~S$YJ?Z$q??2GhH^C*lMIbD$hq&0C*yX(bWHoNOZ zT{h%fc7X9wm(A{aahJ{RdU2PXyTaLJ+Yz~gQ@l43LG`B>1aC1dJV&-~4St^|&xD|^ zMatm6OPJ~(+7>)V*@N$FekmqbF(vVU*}g4!pL6*cX6{w<_O@W_c@VP{O+rb|MRUoa zwS0&q3Wk`8(ER_FiP(?1euzyo@>_lH!r(Qj6wPEWpW8LxTf$uEX5PM=`j8fnZ_90G z+${2+PcRfse17ni+&W2QvLvQ;IXj=qdEUBD6+!fzo@~dl=UTftKeBY z)lltFbQvfVlVa?a*Iby_och62$`a>Crn)i7rUv_!V%>9UtY6u=Jg4rsBGie-PFhfh zH<)>;y7_tKT00$ULZX}v3l6HSp9=0u@g;Ec850rDamI5ECT_C+-%6vWR~&5rKzsDD0sv26pt1<&%e!88Rx{@q&~1c z=vR+y54sTaNA|h2(Qhf2>&@8RXP84;@St+cq?eMnsUJM5`1MkgTQxtXY|~4(&8QbY drYzMe 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

b`zp5pV#<3i!_0YNd3BADJ zO5nCt?9KCiHyHfd9^T8FF7Q3;Ozox(j{3eY+V6plzB3i@>?ax*I>lS<{`x_-X`}CM z$3kl@w9jwYI~#pHsT7?cOG5jq_{EXQ5shXE`S~jE+OMhkvP-HB>*ecTQ@OByT zMq_{bM_+W!y8W6OjWzlG1zOT@hGEBl^*AQqgAMG%3w_&D|E$rhK$uT`LM)xpI^yO% zUprFee~{`SKFlJZ&v{j~rHxg!B_pRbG<^Q{=KgvjQ|Ru$mPyw_COtfpUv-gpA(K3V zBnQokOcHKe#cBI*qJ-3x$KzBHew?RDLRYeCH|{|6d3!QiSV{}8f2~bx$#Wa62f_aV zh7f%yVyjT7h}bFmjCe8m*FW?g=NqkGC6e_%qHIb1UrUz^c557`{eok)w24-}q{%@l z=I3m*P61FhbEJJ_r;qH!xZ#d2_)&`pFItGyBC;PfzZgh@2&v|KzTw-s$X*f_Dts3e z?&a|f5qX62O*OHBZF)hG**%Xak^gUJ_WV_6$hjq&YT7Y$F;tgo9JO{r6b_swd}4^B VW7&08bR6XC4zZT4yvVove*v?G*3PBXProjectModuleGUID 1CE0B20306471E060097A5F4 PBXProjectModuleLabel - sdl.c + player.c PBXSplitModuleInNavigatorKey Split0 @@ -316,25 +316,26 @@ PBXProjectModuleGUID 1CE0B20406471E060097A5F4 PBXProjectModuleLabel - sdl.c + player.c _historyCapacity 0 bookmark - 2002F0DC17E972B3003CF277 + 20568DFA17EC16C60022F314 history - 20F6A21417E95C1200BAD261 20567ECA17E95DEC0002B1A9 20567ECF17E95DEC0002B1A9 20567EE317E95E0D0002B1A9 2090289817E95F9E0051A253 - 2090289B17E95F9E0051A253 - 2090289C17E95F9E0051A253 2090289D17E95F9E0051A253 20D2707917E962A1005B3EA0 20D2707A17E962A1005B3EA0 2002F0D917E972B3003CF277 - 2002F0D417E972A4003CF277 + 20568DE617EC16C60022F314 + 20568DE717EC16C60022F314 + 20568DE817EC16C60022F314 + 20568DE917EC16C60022F314 + 20568DEA17EC16C60022F314 prevStack @@ -350,7 +351,10 @@ 2090289E17E95F9E0051A253 2090289F17E95F9E0051A253 209028A517E95F9E0051A253 - 2002F0DA17E972B3003CF277 + 20568DEB17EC16C60022F314 + 20568DEC17EC16C60022F314 + 20568DED17EC16C60022F314 + 20568DEE17EC16C60022F314 SplitCount @@ -410,9 +414,9 @@ TableOfContents - 2002F0C517E9705F003CF277 + 20568DF017EC16C60022F314 1CE0B1FE06471DED0097A5F4 - 2002F0C617E9705F003CF277 + 20568DF117EC16C60022F314 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -568,14 +572,12 @@ Dock - BecomeActive - ContentConfiguration PBXProjectModuleGUID 1CD0528F0623707200166675 PBXProjectModuleLabel - sdl.c + StatusBarVisibility @@ -631,7 +633,7 @@ TableOfContents 20F6A1B417E95A6200BAD261 - 2002F0C717E9705F003CF277 + 20568DF217EC16C60022F314 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID @@ -751,13 +753,13 @@ TableOfContents 1CD10A99069EF8BA00B06720 - 2002F0C817E9705F003CF277 + 20568DF317EC16C60022F314 1C162984064C10D400B95A72 - 2002F0C917E9705F003CF277 - 2002F0CA17E9705F003CF277 - 2002F0CB17E9705F003CF277 - 2002F0CC17E9705F003CF277 - 2002F0CD17E9705F003CF277 + 20568DF417EC16C60022F314 + 20568DF517EC16C60022F314 + 20568DF617EC16C60022F314 + 20568DF717EC16C60022F314 + 20568DF817EC16C60022F314 ToolbarConfiguration xcode.toolbar.config.debugV3 @@ -919,7 +921,7 @@ TableOfContents 1C78EAAD065D492600B07095 - 2002F0CE17E9705F003CF277 + 20568DF917EC16C60022F314 1C78EAAC065D492600B07095 ToolbarConfiguration diff --git a/xcode/timesynk.xcodeproj/kts.pbxuser b/xcode/timesynk.xcodeproj/kts.pbxuser index d15a24e..7b4dd48 100644 --- a/xcode/timesynk.xcodeproj/kts.pbxuser +++ b/xcode/timesynk.xcodeproj/kts.pbxuser @@ -21,14 +21,6 @@ sepNavVisRange = "{0, 272}"; }; }; - 2002F0D417E972A4003CF277 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - comments = "error: ‘false’ undeclared (first use in this function)"; - fRef = 20F6A1F017E95B6F00BAD261 /* sdl.c */; - rLen = 1; - rLoc = 29; - rType = 1; - }; 2002F0D917E972B3003CF277 /* PlistBookmark */ = { isa = PlistBookmark; fRef = 8D1107310486CEB800E47090 /* Info.plist */; @@ -40,27 +32,6 @@ rLen = 0; rLoc = 2147483647; }; - 2002F0DA17E972B3003CF277 /* PlistBookmark */ = { - isa = PlistBookmark; - fRef = 8D1107310486CEB800E47090 /* Info.plist */; - fallbackIsa = PBXBookmark; - isK = 0; - kPath = ( - ); - name = /Users/kts/Devel/timesynk/xcode/Info.plist; - rLen = 0; - rLoc = 2147483647; - }; - 2002F0DC17E972B3003CF277 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 20F6A1F017E95B6F00BAD261 /* sdl.c */; - name = "sdl.c: 47"; - rLen = 0; - rLoc = 833; - rType = 0; - vrLen = 422; - vrLoc = 314; - }; 20567ECA17E95DEC0002B1A9 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 20F6A1C417E95AD300BAD261 /* common.h */; @@ -111,10 +82,111 @@ vrLen = 332; vrLoc = 0; }; + 20568DD417EBE9490022F314 /* player.c */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {519, 392}}"; + sepNavSelRange = "{614, 0}"; + sepNavVisRange = "{0, 483}"; + }; + }; + 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 */; + name = "main.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 73; + vrLoc = 0; + }; + 20568DE817EC16C60022F314 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 2090287B17E95E780051A253 /* timesynk_Prefix.pch */; + name = "timesynk_Prefix.pch: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + vrLen = 179; + vrLoc = 0; + }; + 20568DE917EC16C60022F314 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 002F3A2B09D0888800EBEB88 /* SDLMain.h */; + name = "SDLMain.h: 1"; + rLen = 0; + rLoc = 0; + rType = 0; + 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, 163}}"; - sepNavSelRange = "{126, 0}"; + sepNavIntBoundsRect = "{{0, 0}, {600, 253}}"; + sepNavSelRange = "{0, 0}"; sepNavVisRange = "{0, 179}"; sepNavWindowFrame = "{{15, 183}, {750, 558}}"; }; @@ -129,26 +201,6 @@ vrLen = 272; vrLoc = 0; }; - 2090289B17E95F9E0051A253 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 002F3A2B09D0888800EBEB88 /* SDLMain.h */; - name = "SDLMain.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 374; - vrLoc = 0; - }; - 2090289C17E95F9E0051A253 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 2090287B17E95E780051A253 /* timesynk_Prefix.pch */; - name = "timesynk_Prefix.pch: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 175; - vrLoc = 0; - }; 2090289D17E95F9E0051A253 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 20F6A1F117E95B6F00BAD261 /* sdl.h */; @@ -293,7 +345,7 @@ uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {519, 253}}"; sepNavSelRange = "{0, 0}"; - sepNavVisRange = "{0, 107}"; + sepNavVisRange = "{0, 73}"; }; }; 20F6A1D417E95AD300BAD261 /* stubs.h */ = { @@ -320,14 +372,14 @@ rLen = 0; rLoc = 0; rType = 0; - vrLen = 107; + vrLen = 73; vrLoc = 0; }; 20F6A1F017E95B6F00BAD261 /* sdl.c */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {450, 588}}"; + sepNavIntBoundsRect = "{{0, 0}, {519, 798}}"; sepNavSelRange = "{833, 0}"; - sepNavVisRange = "{378, 332}"; + sepNavVisRange = "{355, 401}"; }; }; 20F6A1F117E95B6F00BAD261 /* sdl.h */ = { @@ -344,16 +396,6 @@ sepNavVisRange = "{0, 62}"; }; }; - 20F6A21417E95C1200BAD261 /* PBXTextBookmark */ = { - isa = PBXTextBookmark; - fRef = 20F6A1CF17E95AD300BAD261 /* main.h */; - name = "main.h: 1"; - rLen = 0; - rLoc = 0; - rType = 0; - vrLen = 107; - vrLoc = 0; - }; 20F6A21A17E95C1200BAD261 /* PBXTextBookmark */ = { isa = PBXTextBookmark; fRef = 20F6A1D417E95AD300BAD261 /* stubs.h */; @@ -408,22 +450,27 @@ PBXFileDataSource_Target_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 401174600; - PBXWorkspaceStateSaveDate = 401174600; + PBXPerProjectTemplateStateSaveDate = 401336609; + PBXWorkspaceStateSaveDate = 401336609; }; perUserProjectItems = { - 2002F0D417E972A4003CF277 /* PBXTextBookmark */ = 2002F0D417E972A4003CF277 /* PBXTextBookmark */; 2002F0D917E972B3003CF277 /* PlistBookmark */ = 2002F0D917E972B3003CF277 /* PlistBookmark */; - 2002F0DA17E972B3003CF277 /* PlistBookmark */ = 2002F0DA17E972B3003CF277 /* PlistBookmark */; - 2002F0DC17E972B3003CF277 /* PBXTextBookmark */ = 2002F0DC17E972B3003CF277 /* 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 */; - 2090289B17E95F9E0051A253 /* PBXTextBookmark */ = 2090289B17E95F9E0051A253 /* PBXTextBookmark */; - 2090289C17E95F9E0051A253 /* PBXTextBookmark */ = 2090289C17E95F9E0051A253 /* PBXTextBookmark */; 2090289D17E95F9E0051A253 /* PBXTextBookmark */ = 2090289D17E95F9E0051A253 /* PBXTextBookmark */; 2090289E17E95F9E0051A253 /* PBXTextBookmark */ = 2090289E17E95F9E0051A253 /* PBXTextBookmark */; 2090289F17E95F9E0051A253 /* PBXTextBookmark */ = 2090289F17E95F9E0051A253 /* PBXTextBookmark */; @@ -435,7 +482,6 @@ 20F6A1B117E95A6200BAD261 /* PlistBookmark */ = 20F6A1B117E95A6200BAD261 /* PlistBookmark */; 20F6A1E917E95B5200BAD261 /* PBXTextBookmark */ = 20F6A1E917E95B5200BAD261 /* PBXTextBookmark */; 20F6A1EA17E95B5200BAD261 /* PBXTextBookmark */ = 20F6A1EA17E95B5200BAD261 /* PBXTextBookmark */; - 20F6A21417E95C1200BAD261 /* PBXTextBookmark */ = 20F6A21417E95C1200BAD261 /* PBXTextBookmark */; 20F6A21A17E95C1200BAD261 /* PBXTextBookmark */ = 20F6A21A17E95C1200BAD261 /* PBXTextBookmark */; 20F6A21E17E95C1200BAD261 /* PBXTextBookmark */ = 20F6A21E17E95C1200BAD261 /* PBXTextBookmark */; }; diff --git a/xcode/timesynk.xcodeproj/project.pbxproj b/xcode/timesynk.xcodeproj/project.pbxproj index b69abdb..4ee7fad 100644 --- a/xcode/timesynk.xcodeproj/project.pbxproj +++ b/xcode/timesynk.xcodeproj/project.pbxproj @@ -11,6 +11,8 @@ 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 */; }; + 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 */; }; 20F6A1D517E95AD300BAD261 /* interface in Resources */ = {isa = PBXBuildFile; fileRef = 20F6A1C517E95AD300BAD261 /* interface */; }; 20F6A1D617E95AD300BAD261 /* net in Resources */ = {isa = PBXBuildFile; fileRef = 20F6A1D017E95AD300BAD261 /* net */; }; @@ -41,6 +43,10 @@ 002F3AF009D08F1000EBEB88 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/SDLMain.nib; sourceTree = ""; }; 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 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; }; + 20568DD517EBE9490022F314 /* player.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = player.h; path = ../player.h; sourceTree = SOURCE_ROOT; }; 2090287B17E95E780051A253 /* timesynk_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = timesynk_Prefix.pch; sourceTree = ""; }; 20F6A1C217E95AAA00BAD261 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = main.c; path = ../main.c; sourceTree = SOURCE_ROOT; }; 20F6A1C417E95AD300BAD261 /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = common.h; path = ../common.h; sourceTree = SOURCE_ROOT; }; @@ -74,6 +80,10 @@ isa = PBXGroup; children = ( 002F3A2B09D0888800EBEB88 /* SDLMain.h */, + 20568DD217EBE9490022F314 /* game.c */, + 20568DD317EBE9490022F314 /* game.h */, + 20568DD417EBE9490022F314 /* player.c */, + 20568DD517EBE9490022F314 /* player.h */, 002F3A2C09D0888800EBEB88 /* SDLMain.m */, ); name = Classes; @@ -215,6 +225,8 @@ 20F6A1C317E95AAA00BAD261 /* main.c in Sources */, 20F6A1F317E95B6F00BAD261 /* sdl.c in Sources */, 20F6A20317E95BC400BAD261 /* sockets.c in Sources */, + 20568DD617EBE9490022F314 /* game.c in Sources */, + 20568DD717EBE9490022F314 /* player.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };