Skip to content

Commit cb2c15c

Browse files
committed
oops, overwrote rawdraw.c, fixed by moving the game to another C file
1 parent 07d8dbd commit cb2c15c

2 files changed

Lines changed: 360 additions & 66 deletions

File tree

lightsoutgame.c

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
//Copyright (c) 2011 <>< Charles Lohr - Under the MIT/x11 or NewBSD License you choose.
2+
3+
#include <stdio.h>
4+
#include <stdlib.h>
5+
#include <math.h>
6+
#include "os_generic.h"
7+
8+
#define CNFG3D
9+
#define CNFG_IMPLEMENTATION
10+
//#define CNFGOGL
11+
//#define CNFGRASTERIZER
12+
//#define CNFG_WINDOWS_DISABLE_BATCH
13+
14+
#include "rawdraw_sf.h"
15+
16+
#define gx 6
17+
#define gy 6
18+
int margin = 5;
19+
float gsx = 50;
20+
float gsy = 50;
21+
float ofsx, ofsy;
22+
23+
int grid[gx][gy];
24+
25+
void InvCell( int cx, int cy )
26+
{
27+
if( cx >= 0 && cx < gx && cy >= 0 && cy < gy )
28+
{
29+
grid[cx][cy] ^= 1;
30+
}
31+
}
32+
33+
void InvCross( int cx, int cy )
34+
{
35+
InvCell( cx, cy );
36+
InvCell( cx+1, cy );
37+
InvCell( cx-1, cy );
38+
InvCell( cx, cy+1 );
39+
InvCell( cx, cy-1 );
40+
}
41+
42+
void HandleKey( int keycode, int bDown )
43+
{
44+
}
45+
46+
void HandleButton( int x, int y, int button, int bDown )
47+
{
48+
if( !bDown ) return;
49+
50+
int tsx = gsx+margin;
51+
int tsy = gsy+margin;
52+
53+
x -= ofsx;
54+
y -= ofsy;
55+
if( x%tsx > gsx ) return;
56+
if( y%tsy > gsy ) return;
57+
int coordx = x / (gsx+margin);
58+
int coordy = y / (gsy+margin);
59+
if( coordx < gx && coordy < gy )
60+
{
61+
InvCross( coordx, coordy );
62+
}
63+
}
64+
65+
void HandleMotion( int x, int y, int mask )
66+
{
67+
}
68+
69+
int HandleDestroy()
70+
{
71+
printf( "Destroying\n" );
72+
exit(10);
73+
return 0;
74+
}
75+
76+
int main()
77+
{
78+
79+
CNFGBGColor = 0x000080FF; //Darkblue
80+
CNFGSetup( "Test Bench", 640, 480 );
81+
82+
srand( OGGetAbsoluteTime() );
83+
84+
int i;
85+
for( i = 0; i < 5; i++ )
86+
{
87+
InvCross( rand()%gx, rand()%gy );
88+
}
89+
90+
while(CNFGHandleInput())
91+
{
92+
short wx, wy;
93+
CNFGGetDimensions( &wx, &wy );
94+
95+
float scalex = wx / gx;
96+
float scaley = wy / gy;
97+
float scale = scaley;
98+
if( scalex < scaley ) scale = scalex;
99+
gsx = gsy = scale-margin;
100+
101+
float extraw = wx - gsx * gx;
102+
float extrah = wy - gsy * gy;
103+
ofsx = extraw/2;
104+
ofsy = extrah/2;
105+
106+
CNFGClearFrame();
107+
int x;
108+
int y;
109+
110+
for( y = 0; y < gy; y++ )
111+
for( x = 0; x < gx; x++ )
112+
{
113+
int xco = x * (gsy+margin) + ofsx;
114+
int yco = y * (gsx+margin) + ofsy;
115+
CNFGColor( grid[x][y]?0xffffffff:0x00000ff );
116+
CNFGTackRectangle( xco+margin/2, yco+margin/2, xco+gsx, yco+gsy );
117+
}
118+
119+
CNFGSwapBuffers();
120+
}}
121+

0 commit comments

Comments
 (0)