コード例 #1
0
ファイル: ext-module.c プロジェクト: bsmr-games/lipsofsuna
LIExtModule* liext_render_new (
	LIMaiProgram* program)
{
	LIExtModule* self;

	/* Allocate self. */
	self = lisys_calloc (1, sizeof (LIExtModule));
	if (self == NULL)
		return NULL;
	self->program = program;
	self->render = limai_program_find_component (program, "render");
	if (self->render == NULL)
	{
		lisys_error_set (EINVAL, "extension `render' can only be used by the client");
		liext_render_free (self);
		return NULL;
	}

	/* Register classes. */
	liscr_script_set_userdata (program->script, LIEXT_SCRIPT_LIGHT, self);
	liscr_script_set_userdata (program->script, LIEXT_SCRIPT_RENDER, self);
	liext_script_light (program->script);
	liext_script_render (program->script);

	return self;
}
コード例 #2
0
ファイル: ext-module.c プロジェクト: garvek/GodheadLips
LIExtModule* liext_heightmap_new (
	LIMaiProgram* program)
{
	LIExtModule* self;
    int i;

	/* Allocate self. */
	self = lisys_calloc (1, sizeof (LIExtModule));
	if (self == NULL)
		return NULL;
	self->program = program;

    for (i=0; i<HEIGHTMAP_MAX_TEXTURES; i++)
        self->materials[i] = 0;
    
    /* Prepare images */
    self->file1[0] = 0;
    self->file2[0] = 0;
    self->data1 = NULL;
    self->data2 = NULL;
    
	/* Register classes. */
	liscr_script_set_userdata (program->script, LIEXT_SCRIPT_HEIGHTMAP, self);
	liext_script_heightmap (program->script);
	printf("heightmap initialized");
	return self;
}
コード例 #3
0
ファイル: main-program.c プロジェクト: bsmr-games/lipsofsuna
static int private_init (
	LIMaiProgram* self,
	const char*   path,
	const char*   name,
	const char*   args)
{
	/* Initialize paths. */
	self->paths = lipth_paths_new (path, name);
	if (self->paths == NULL)
		return 0;

	/* Initialize dictionaries. */
	self->components = lialg_strdic_new ();
	if (self->components == NULL)
		return 0;

	/* Initialize callbacks. */
	self->callbacks = lical_callbacks_new ();
	if (self->callbacks == NULL)
		return 0;

	/* Allocate the model manager. */
	self->models = limdl_manager_new ();
	if (self->models == NULL)
		return 0;
	self->models->model_added_callback.callback = private_model_added;
	self->models->model_added_callback.userdata = self;
	self->models->model_removed_callback.callback = private_model_removed;
	self->models->model_removed_callback.userdata = self;

	/* Allocate the script. */
	self->script = liscr_script_new ();
	if (self->script == NULL)
		return 0;

	/* Initialize timer. */
	self->start = lisys_timeval_init ();
	self->prev_tick = self->start;
	self->curr_tick = self->start;

	/* Initialize messaging. */
	self->message_mutex = lisys_mutex_new ();
	if (self->message_mutex == NULL)
		return 0;

	/* Register classes. */
	liscr_script_set_userdata (self->script, LISCR_SCRIPT_PROGRAM, self);
	liscr_script_packet (self->script);
	liscr_script_program (self->script);

	/* Register callbacks. */
	if (!lical_callbacks_insert (self->callbacks, "tick", 2, private_tick, self, self->calls))
		return 0;

	lialg_random_init (&self->random, lisys_time (NULL));

	return 1;
}
コード例 #4
0
ファイル: module.c プロジェクト: bsmr-games/lipsofsuna
LIExtTerrainModule* liext_terrain_module_new (
	LIMaiProgram* program)
{
	LIExtTerrainModule* self;

	/* Allocate self. */
	self = lisys_calloc (1, sizeof (LIExtTerrainModule));
	if (self == NULL)
		return NULL;
	self->program = program;

	/* Register classes. */
	liscr_script_set_userdata (program->script, LIEXT_SCRIPT_TERRAIN, self);
	liscr_script_set_userdata (program->script, LIEXT_SCRIPT_TERRAIN_CHUNK, self);
	liext_script_terrain (program->script);
	liext_script_terrain_chunk (program->script);

	return self;
}
コード例 #5
0
LIExtModule* liext_file_new (
	LIMaiProgram* program)
{
	LIExtModule* self;

	/* Allocate self. */
	self = lisys_calloc (1, sizeof (LIExtModule));
	if (self == NULL)
		return NULL;
	self->program = program;

	/* Register classes. */
	liscr_script_set_userdata (program->script, LIEXT_SCRIPT_FILE, self);
	liext_script_file (program->script);

	return self;
}
コード例 #6
0
ファイル: module.c プロジェクト: bsmr-games/lipsofsuna
LIExtMathModule* liext_math_new (
	LIMaiProgram* program)
{
	LIExtMathModule* self;

	/* Allocate self. */
	self = lisys_calloc (1, sizeof (LIExtMathModule));
	if (self == NULL)
		return NULL;
	self->program = program;

	/* Register classes. */
	liscr_script_set_userdata (program->script, LIEXT_SCRIPT_MATH, self);
	liext_script_quaternion (program->script);
	liext_script_vector (program->script);

	return self;
}
コード例 #7
0
LIExtModule* liext_heightmap_new (
	LIMaiProgram* program)
{
	LIExtModule* self;

	/* Allocate self. */
	self = lisys_calloc (1, sizeof (LIExtModule));
	if (self == NULL)
		return NULL;
	self->program = program;

    /* Allocate paths */
    //self->paths = lipth_paths_new (NULL, LIEXT_SCRIPT_HEIGHTMAP);
    
	/* Register classes. */
	liscr_script_set_userdata (program->script, LIEXT_SCRIPT_HEIGHTMAP, self);
	liext_script_heightmap (program->script);
	printf("heightmap initialized");
	return self;
}