Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8079 → Rev 8080

/programs/games/fridge/fridge.c
1,7 → 1,10
#include <kos32sys.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
 
#include "kolibri_libimg.h"
 
/*
EVENTS LOOK LIKE IN C--
*/
16,8 → 19,6
 
#define bs 44
 
#define FIRSTC 0x137F00
#define SECONDC 0x0013FF
 
int field[_size][_size] = {
{0, 0, 0, 1},
28,15 → 29,90
 
char* title = "Fridge v0.1";
 
// PICTURES LOADING CODE
 
char temp_path[4096];
char* HOR;
char* VER;
 
 
char* load_file_inmem(char* fname, int32_t* read_sz)
{
FILE *f = fopen(fname, "rb");
if (!f) {
exit(1);
}
if (fseek(f, 0, SEEK_END)) {
exit(1);
}
int filesize = ftell(f);
rewind(f);
char* fdata = malloc(filesize);
if(!fdata) {
exit(1);
}
*read_sz = fread(fdata, 1, filesize, f);
if (ferror(f)) {
exit(1);
}
fclose(f);
 
return fdata;
}
 
 
 
 
void load_pict() {
const int icon_rgb_size = bs*bs;
char *image_data,
*filedata;
strcpy(temp_path, "h.png");
 
int32_t read_bytes;
filedata = load_file_inmem(temp_path, &read_bytes);
HOR = malloc(icon_rgb_size * 3);
image_data = img_decode(filedata, read_bytes, 0);
img_to_rgb2(image_data, HOR);
strcpy(temp_path, "v.png");
 
filedata = load_file_inmem(temp_path, &read_bytes);
VER = malloc(icon_rgb_size * 3);
image_data = img_decode(filedata, read_bytes, 0);
img_to_rgb2(image_data, VER);
img_destroy(image_data);
free(filedata);
}
 
 
 
 
// END OF PIC LOAD CODE
 
 
void redraw_buttons() {
for (int j = 5, yy = 0; yy<_size; j+=bs, yy++)
for (int i = 15, xx = 0; xx<_size; i+=bs, xx++)
{
define_button(65536 * i + (bs-1), 65536 * j + (bs-1), ((xx+1)*10)+yy+1, 0xbbbbbb);
if (field[yy][xx]) draw_bitmap(VER, i, j, bs, bs);
else draw_bitmap(HOR, i, j, bs, bs);
}
}
 
void draw_window(){
BeginDraw();
DrawWindow(215,100,225, 225,title,0xEEEeee,0x34);
for (int j = 10, yy = 0; yy<_size; j+=bs, yy++)
for (int i = 10, xx = 0; xx<_size; i+=bs, xx++)
{
if (field[yy][xx]) define_button(65536 * i + bs, 65536 * j + bs, ((xx+1)*10)+yy+1, FIRSTC);
else define_button(65536 * i + bs, 65536 * j + bs, ((xx+1)*10)+yy+1, SECONDC);
}
DrawWindow(215,100,220, 220,title,0xbbbbbb,0x34);
redraw_buttons();
EndDraw();
}
 
55,12 → 131,20
if (field[y][x]) field[y][x] = 0; else field[y][x] = 1;
draw_window();
redraw_buttons();
}
}
 
int main()
int main(int argc, char **argv)
{
if (kolibri_libimg_init() == -1)
{
printf("Can not load libimg.obj!\n");
exit(1);
}
load_pict();
draw_window();
while(1)
{