project_files/frontlib/frontlib.c
changeset 7177 bf6cf4dd847a
parent 7175 038e3415100a
child 7179 f84805e6df03
equal deleted inserted replaced
7175:038e3415100a 7177:bf6cf4dd847a
     1 #include "frontlib.h"
     1 #include "frontlib.h"
     2 #include "logging.h"
     2 #include "logging.h"
     3 #include "socket.h"
     3 #include "model/map.h"
       
     4 #include "ipc/mapconn.h"
     4 #include "ipc.h"
     5 #include "ipc.h"
     5 #include "model/cfg.h"
       
     6 
     6 
     7 #include <SDL.h>
     7 #include <SDL.h>
     8 #include <SDL_net.h>
     8 #include <SDL_net.h>
     9 #include <stdio.h>
     9 #include <stdio.h>
    10 #include <stdint.h>
    10 #include <stdint.h>
    44 static void onConfigQuery(void *context) {
    44 static void onConfigQuery(void *context) {
    45 	flib_log_i("Sending config...");
    45 	flib_log_i("Sending config...");
    46 	flib_ipc ipc = (flib_ipc)context;
    46 	flib_ipc ipc = (flib_ipc)context;
    47 	flib_ipc_send_messagestr(ipc, "TL");
    47 	flib_ipc_send_messagestr(ipc, "TL");
    48 	flib_ipc_send_messagestr(ipc, "eseed loremipsum");
    48 	flib_ipc_send_messagestr(ipc, "eseed loremipsum");
    49 	flib_ipc_send_messagestr(ipc, "escript Missions/Training/Basic_Training_-_Bazooka.lua");
    49 	flib_ipc_send_messagestr(ipc, "e$mapgen 0");
       
    50 	flib_ipc_send_messagestr(ipc, "e$template_filter 0");
       
    51 	flib_ipc_send_messagestr(ipc, "etheme Jungle");
       
    52 	flib_ipc_send_messagestr(ipc, "eaddteam 11111111111111111111111111111111 255 Medo42");
    50 }
    53 }
    51 
    54 
    52 static void onDisconnect(void *context) {
    55 static void onDisconnect(void *context) {
    53 	flib_log_i("Connection closed.");
    56 	flib_log_i("Connection closed.");
    54 	flib_ipc_destroy((flib_ipc*)context);
    57 	flib_ipc_destroy((flib_ipc*)context);
    57 static void onGameEnd(void *context, int gameEndType) {
    60 static void onGameEnd(void *context, int gameEndType) {
    58 	switch(gameEndType) {
    61 	switch(gameEndType) {
    59 	case GAME_END_FINISHED:
    62 	case GAME_END_FINISHED:
    60 		flib_log_i("Game finished.");
    63 		flib_log_i("Game finished.");
    61 		flib_constbuffer demobuf = flib_ipc_getdemo(context);
    64 		flib_constbuffer demobuf = flib_ipc_getdemo(context);
    62 		flib_log_i("Writing demo (%u bytes)...", demobuf.size);
    65 		flib_log_i("Writing demo (%u bytes)...", (unsigned)demobuf.size);
    63 		FILE *file = fopen("testdemo.dem", "wb");
    66 		FILE *file = fopen("testdemo.dem", "wb");
    64 		fwrite(demobuf.data, 1, demobuf.size, file);
    67 		fwrite(demobuf.data, 1, demobuf.size, file);
    65 		fclose(file);
    68 		fclose(file);
    66 		file = NULL;
    69 		file = NULL;
    67 		break;
    70 		break;
    72 		flib_log_i("Game iterrupted.");
    75 		flib_log_i("Game iterrupted.");
    73 		break;
    76 		break;
    74 	}
    77 	}
    75 }
    78 }
    76 
    79 
       
    80 static void handleMapSuccess(void *context, const uint8_t *bitmap, int numHedgehogs) {
       
    81 	printf("Drawing map for %i brave little hogs...", numHedgehogs);
       
    82 	int pixelnum = 0;
       
    83 	for(int y=0; y<MAPIMAGE_HEIGHT; y++) {
       
    84 		for(int x=0; x<MAPIMAGE_WIDTH; x++) {
       
    85 			if(bitmap[pixelnum>>3] & (1<<(7-(pixelnum&7)))) {
       
    86 				printf("#");
       
    87 			} else {
       
    88 				printf(" ");
       
    89 			}
       
    90 			pixelnum++;
       
    91 		}
       
    92 		printf("\n");
       
    93 	}
       
    94 
       
    95 	flib_mapconn **connptr = context;
       
    96 	flib_mapconn_destroy(*connptr);
       
    97 	*connptr = NULL;
       
    98 }
       
    99 
       
   100 static void handleMapFailure(void *context, const char *errormessage) {
       
   101 	flib_log_e("Map rendering failed: %s", errormessage);
       
   102 
       
   103 	flib_mapconn **connptr = context;
       
   104 	flib_mapconn_destroy(*connptr);
       
   105 	*connptr = NULL;
       
   106 }
       
   107 
    77 int main(int argc, char *argv[]) {
   108 int main(int argc, char *argv[]) {
    78 	flib_init(0);
   109 /*	flib_init(0);
    79 
   110 
    80 	flib_cfg_meta *meta = flib_cfg_meta_from_ini("basicsettings.ini", "gamemods.ini");
   111 	flib_cfg_meta *meta = flib_cfg_meta_from_ini("basicsettings.ini", "gamemods.ini");
    81 	flib_cfg *cfg = flib_cfg_create(meta, "DefaultScheme");
   112 	flib_cfg *cfg = flib_cfg_create(meta, "DefaultScheme");
    82 	flib_cfg_to_ini(meta, "defaulttest.ini", cfg);
   113 	flib_cfg_to_ini(meta, "defaulttest.ini", cfg);
    83 
   114 
    84 	flib_cfg_meta_destroy(meta);
   115 	flib_cfg_meta_destroy(meta);
    85 
   116 
    86 	flib_quit();
   117 	flib_quit();
    87 	return 0;
   118 	return 0;*/
    88 /*
       
    89 	flib_ipc ipc = flib_ipc_create(true, "Medo42");
       
    90 	assert(ipc);
       
    91 	flib_ipc_onConfigQuery(ipc, &onConfigQuery, ipc);
       
    92 	flib_ipc_onDisconnect(ipc, &onDisconnect, &ipc);
       
    93 	flib_ipc_onGameEnd(ipc, &onGameEnd, ipc);
       
    94 
   119 
    95 	while(ipc) {
   120 	flib_init(0);
    96 		flib_ipc_tick(ipc);
   121 	flib_map *mapconf = flib_map_create_regular("Jungle", TEMPLATEFILTER_CAVERN);
       
   122 	assert(mapconf);
       
   123 
       
   124 	flib_mapconn *mapconn = flib_mapconn_create("foobart", mapconf);
       
   125 	assert(mapconn);
       
   126 
       
   127 	flib_map_destroy(mapconf);
       
   128 	mapconf = NULL;
       
   129 
       
   130 	flib_mapconn_onFailure(mapconn, &handleMapFailure, &mapconn);
       
   131 	flib_mapconn_onSuccess(mapconn, &handleMapSuccess, &mapconn);
       
   132 
       
   133 	while(mapconn) {
       
   134 		flib_mapconn_tick(mapconn);
    97 	}
   135 	}
    98 	flib_log_i("Shutting down...");
   136 	flib_log_i("Shutting down...");
    99 	flib_quit();
   137 	flib_quit();
   100 	return 0;*/
   138 	return 0;
   101 }
   139 }