about summary refs log tree commit diff
path: root/src/engine/e_if_other.h
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-01-19 10:57:25 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-01-19 10:57:25 +0000
commitdd21ae1bc7a648138d33727628983a3b25a07570 (patch)
treecaf87523cda90c3a0fb235ea6e642765136d3f88 /src/engine/e_if_other.h
parent4eb71856948077b4c0cf9b5ef7178075433b7259 (diff)
downloadzcatch-dd21ae1bc7a648138d33727628983a3b25a07570.tar.gz
zcatch-dd21ae1bc7a648138d33727628983a3b25a07570.zip
large commit. documented a bit. editor updates. general cleanup of everything
Diffstat (limited to 'src/engine/e_if_other.h')
-rw-r--r--src/engine/e_if_other.h349
1 files changed, 349 insertions, 0 deletions
diff --git a/src/engine/e_if_other.h b/src/engine/e_if_other.h
new file mode 100644
index 00000000..931df64d
--- /dev/null
+++ b/src/engine/e_if_other.h
@@ -0,0 +1,349 @@
+/* copyright (c) 2007 magnus auvinen, see licence.txt for more info */
+#ifndef ENGINE_IF_OTHER_H
+#define ENGINE_IF_OTHER_H
+
+/*
+	Title: Engine Interface
+*/
+
+#include "e_keys.h"
+#include "e_system.h"
+
+enum 
+{
+	SERVER_TICK_SPEED=50,
+	MAX_CLIENTS=12,
+	
+	SNAP_CURRENT=0,
+	SNAP_PREV=1,
+	
+
+	MASK_NONE=0,
+	MASK_SET,
+	MASK_ZERO,
+
+	SNDFLAG_LOOP=1,
+	SNDFLAG_POS=2,
+	SNDFLAG_ALL=3
+};
+
+/*
+	Structure: SNAP_ITEM
+*/
+typedef struct
+{
+	int type;
+	int id;
+} SNAP_ITEM;
+
+/*
+	Structure: CLIENT_INFO
+*/
+typedef struct
+{
+	const char *name;
+	int latency;
+} CLIENT_INFO;
+
+typedef struct PERFORMACE_INFO_t
+{
+	const char *name;
+	struct PERFORMACE_INFO_t *parent;
+	struct PERFORMACE_INFO_t *first_child;
+	struct PERFORMACE_INFO_t *next_child;
+	int tick;
+	int64 start;
+	int64 total;
+	int64 biggest;
+	int64 last_delta;
+} PERFORMACE_INFO;
+
+void perf_init();
+void perf_next();
+void perf_start(PERFORMACE_INFO *info);
+void perf_end();
+void perf_dump();
+
+int gfx_init();
+void gfx_shutdown();
+void gfx_swap();
+int gfx_window_active();
+int gfx_window_open();
+
+void gfx_set_vsync(int val);
+void gfx_mask_op(int mask, int write);
+void gfx_clear_mask(int fill);
+
+int snd_init();
+int snd_shutdown();
+int snd_update();
+
+int map_load(const char *mapname);
+void map_unload();
+
+void map_set(void *m);
+
+/*
+#include "e_if_client.h"
+#include "e_if_server.h"
+#include "e_if_snd.h"
+#include "e_if_gfx.h"
+#include "e_if_inp.h"
+#include "e_if_msg.h"
+#include "e_if_mod.h"*/
+
+/*
+	Section: Map
+*/
+
+/*
+	Function: map_is_loaded
+		Checks if a map is loaded.
+		
+	Returns:
+		Returns 1 if the button is pressed, otherwise 0.
+*/
+int map_is_loaded();
+
+/*
+	Function: map_num_items
+		Checks the number of items in the loaded map.
+		
+	Returns:
+		Returns the number of items. 0 if no map is loaded.
+*/
+int map_num_items();
+
+/*
+	Function: map_find_item
+		Searches the map for an item.
+	
+	Arguments:
+		type - Item type.
+		id - Item ID.
+	
+	Returns:
+		Returns a pointer to the item if it exists, otherwise it returns NULL.
+*/
+void *map_find_item(int type, int id);
+
+/*
+	Function: map_get_item
+		Gets an item from the loaded map from index.
+	
+	Arguments:
+		index - Item index.
+		type - Pointer that recives the item type (can be NULL).
+		id - Pointer that recives the item id (can be NULL).
+	
+	Returns:
+		Returns a pointer to the item if it exists, otherwise it returns NULL.
+*/
+void *map_get_item(int index, int *type, int *id);
+
+/*
+	Function: map_get_type
+		Gets the index range of an item type.
+	
+	Arguments:
+		type - Item type to search for.
+		start - Pointer that recives the starting index.
+		num - Pointer that recives the number of items.
+	
+	Returns:
+		If the item type is not in the map, start and num will be set to 0.
+*/
+void map_get_type(int type, int *start, int *num);
+
+/*
+	Function: map_get_data
+		Fetches a pointer to a raw data chunk in the map.
+	
+	Arguments:
+		index - Index to the data to fetch.
+	
+	Returns:
+		A pointer to the raw data, otherwise 0.
+*/
+void *map_get_data(int index);
+
+/*
+	Function: map_get_data_swapped
+		TODO
+		
+	Arguments:
+		arg1 - desc
+	
+	Returns:
+
+	See Also:
+		<other_func>
+*/
+void *map_get_data_swapped(int index);
+
+/*
+	Section: Network (Server)
+*/
+/*
+	Function: snap_new_item
+		Creates a new item that should be sent.
+	
+	Arguments:
+		type - Type of the item.
+		id - ID of the item.
+		size - Size of the item.
+	
+	Returns:
+		A pointer to the item data, otherwise 0.
+	
+	Remarks:
+		The item data should only consist pf 4 byte integers as
+		they are subject to byte swapping. This means that the size
+		argument should be dividable by 4.
+*/
+void *snap_new_item(int type, int id, int size);
+
+/*
+	Section:Section: Network (Client)
+*/
+/*
+	Function: snap_num_items
+		Check the number of items in a snapshot.
+	
+	Arguments:
+		snapid - Snapshot ID to the data to fetch.
+			* SNAP_PREV for previous snapshot.
+			* SNAP_CUR for current snapshot.
+	
+	Returns:
+		The number of items in the snapshot.
+*/
+int snap_num_items(int snapid);
+
+/*
+	Function: snap_get_item
+		Gets an item from a snapshot.
+	
+	Arguments:
+		snapid - Snapshot ID to the data to fetch.
+			* SNAP_PREV for previous snapshot.
+			* SNAP_CUR for current snapshot.
+		index - Index of the item.
+		item - Pointer that recives the item info.
+	
+	Returns:
+		Returns a pointer to the item if it exists, otherwise NULL.
+*/
+const void *snap_get_item(int snapid, int index, SNAP_ITEM *item);
+
+/*
+	Function: snap_find_item
+		Searches a snapshot for an item.
+	
+	Arguments:
+		snapid - Snapshot ID to the data to fetch.
+			* SNAP_PREV for previous snapshot.
+			* SNAP_CUR for current snapshot.
+		type - Type of the item.
+		id - ID of the item.
+	
+	Returns:
+		Returns a pointer to the item if it exists, otherwise NULL.
+*/
+const void *snap_find_item(int snapid, int type, int id);
+
+/*
+	Function: snap_input
+		Sets the input data to send to the server.
+	
+	Arguments:
+		data - Pointer to the data.
+		size - Size of the data.
+
+	Remarks:
+		The data should only consist of 4 bytes integer as they are
+		subject to byte swapping.
+*/
+void snap_input(void *data, int size);
+
+/* message packing */
+enum
+{
+	MSGFLAG_VITAL=1
+};
+
+/* message sending */
+/*
+	Function: server_send_msg
+		TODO
+	
+	Arguments:
+		arg1 - desc
+	
+	Returns:
+
+	See Also:
+		<other_func>
+*/
+int server_send_msg(int client_id); /* client_id == -1 == broadcast */
+
+/*
+	Function: client_send_msg
+		TODO
+	
+	Arguments:
+		arg1 - desc
+	
+	Returns:
+
+	See Also:
+		<other_func>
+*/
+int client_send_msg();
+/* undocumented graphics stuff */
+
+/* server snap id */
+/*
+	Function: snap_new_id
+		TODO
+	
+	Arguments:
+		arg1 - desc
+	
+	Returns:
+
+	See Also:
+		<other_func>
+*/
+int snap_new_id();
+
+/*
+	Function: snap_free_id
+		TODO
+	
+	Arguments:
+		arg1 - desc
+	
+	Returns:
+
+	See Also:
+		<other_func>
+*/
+void snap_free_id(int id);
+
+/* other */
+/*
+	Function: map_unload_data
+		TODO
+	
+	Arguments:
+		arg1 - desc
+	
+	Returns:
+
+	See Also:
+		<other_func>
+*/
+void map_unload_data(int index);
+
+#endif