661 lines
24 KiB
C
661 lines
24 KiB
C
#ifndef _CORE_COMMON_H
|
|
#define _CORE_COMMON_H
|
|
/*
|
|
* Raydium - CQFD Corp.
|
|
* http://raydium.org/
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#define RAYDIUM_MAJOR 0
|
|
#define RAYDIUM_MINOR 705
|
|
|
|
#ifdef WIN32
|
|
# ifdef RAYDLL
|
|
# ifdef MAIN_H
|
|
# define __global __declspec(dllimport)
|
|
# define __rayapi __declspec(dllimport)
|
|
# endif
|
|
# ifdef MAIN_C
|
|
# define __global __declspec(dllexport)
|
|
# define __rayapi __declspec(dllexport)
|
|
# endif
|
|
# endif
|
|
#else // Not under WIN32
|
|
# ifdef LIBRAY
|
|
# define __global
|
|
# define __rayapi
|
|
# else
|
|
# ifdef MAIN_H
|
|
# define __global extern
|
|
# define __rayapi
|
|
# endif
|
|
# ifdef MAIN_C
|
|
# define __global
|
|
# define __rayapi
|
|
# endif
|
|
# endif
|
|
#endif
|
|
|
|
#ifdef SWIG
|
|
#define __global
|
|
#endif
|
|
|
|
#ifdef WIN32
|
|
#include "windows.h"
|
|
#endif
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <fcntl.h>
|
|
#include <GL/glew.h>
|
|
#include <GL/gl.h>
|
|
#include <GL/glu.h>
|
|
#include <math.h>
|
|
#include <time.h>
|
|
#include <memory.h>
|
|
#include <string.h>
|
|
#include <sys/types.h>
|
|
#include <signal.h>
|
|
#include <stdarg.h>
|
|
|
|
#include <AL/al.h>
|
|
#include <AL/alut.h>
|
|
#include <vorbis/vorbisfile.h>
|
|
|
|
#ifdef WIN32
|
|
#include <winsock2.h>
|
|
#include <ws2tcpip.h>
|
|
#endif
|
|
|
|
// need to separate LINUX & others, using glut for joystick..
|
|
#ifndef WIN32
|
|
#include <linux/joystick.h>
|
|
#include <sys/ioctl.h>
|
|
#include <linux/rtc.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
#include <netdb.h>
|
|
#include <pwd.h>
|
|
#endif
|
|
|
|
#ifdef linux
|
|
#include <linux/if.h>
|
|
#include <linux/sockios.h>
|
|
#endif
|
|
|
|
#include <errno.h>
|
|
#include "config.h"
|
|
|
|
#ifdef PHP_SUPPORT
|
|
#ifdef WIN32
|
|
#define PHP_WIN32
|
|
#define ZTS
|
|
#define ZEND_WIN32
|
|
#endif
|
|
#include "php.h"
|
|
#include "php_version.h"
|
|
#include "php_globals.h"
|
|
#include "php_variables.h"
|
|
#include "zend_modules.h"
|
|
|
|
#include "SAPI.h"
|
|
|
|
#include "php.h"
|
|
//#include "build-defs.h"
|
|
#include "zend.h"
|
|
#include "zend_extensions.h"
|
|
#include "php_ini.h"
|
|
#include "php_globals.h"
|
|
#include "php_main.h"
|
|
#include "fopen_wrappers.h"
|
|
#include "ext/standard/php_standard.h"
|
|
#endif
|
|
|
|
#include <jpeglib.h>
|
|
|
|
#define PI (3.1415926535f)
|
|
|
|
// Our turn, let's define all about Raydium ...
|
|
#define RAYDIUM_APP_SHORTNAME "raydium"
|
|
|
|
#define RAYDIUM_MAX_VERTICES 2000000
|
|
#define RAYDIUM_MAX_TEXTURES 256
|
|
#define RAYDIUM_MAX_LIGHTS 8
|
|
#define RAYDIUM_MAX_NAME_LEN 255
|
|
#define RAYDIUM_MAX_DIR_LEN 4096
|
|
#define RAYDIUM_MAX_OBJECTS 1024
|
|
#define RAYDIUM_MAX_OBJECT_ANIMS 20
|
|
#define RAYDIUM_MAX_OBJECT_ANIM_INSTANCES 64
|
|
#define RAYDIUM_MAX_TIMECALLS 16
|
|
#define RAYDIUM_MAX_REG_VARIABLES 256
|
|
#define RAYDIUM_MAX_REG_FUNCTION 256
|
|
#define RAYDIUM_MAX_LOG_FOPEN 256
|
|
#define RAYDIUM_MAX_CAMERA_PATHS 16
|
|
#define RAYDIUM_MAX_CAMERA_PATH_STEPS 512
|
|
#define RAYDIUM_MAX_VIDEO_DEVICES 4
|
|
#define RAYDIUM_MAX_LIVE_TEXTURES 8
|
|
#define RAYDIUM_MAX_VIDEOS 4
|
|
#define RAYDIUM_MAX_SHADERS 32
|
|
|
|
#define RAYDIUM_LIGHT_ON 1
|
|
#define RAYDIUM_LIGHT_BLINKING 2
|
|
#define RAYDIUM_LIGHT_OFF -1
|
|
|
|
#define RAYDIUM_TEXTURE_FILTER_NONE 0
|
|
#define RAYDIUM_TEXTURE_FILTER_BILINEAR 1
|
|
#define RAYDIUM_TEXTURE_FILTER_TRILINEAR 2
|
|
|
|
#define RAYDIUM_TEXTURE_BLEND_NONE 0
|
|
#define RAYDIUM_TEXTURE_BLEND_BLENDED 1
|
|
#define RAYDIUM_TEXTURE_BLEND_CUTOUT 2
|
|
#define RAYDIUM_TEXTURE_PHANTOM 3
|
|
|
|
#define RAYDIUM_RENDERING_WINDOW 0
|
|
#define RAYDIUM_RENDERING_FULLSCREEN 1
|
|
#define RAYDIUM_RENDERING_NONE 2
|
|
|
|
#define RAYDIUM_PROJECTION_ORTHO 0
|
|
#define RAYDIUM_PROJECTION_PERSPECTIVE 1
|
|
|
|
#define RAYDIUM_KEYBOARD_SIZE 256
|
|
#define RAYDIUM_JOY_MAX_BUTTONS 16
|
|
#define RAYDIUM_JOY_MAX_AXIS 8
|
|
|
|
#define RAYDIUM_NETWORK_PORT 29104
|
|
#define RAYDIUM_NETWORK_BEACON_PORT (RAYDIUM_NETWORK_PORT+1)
|
|
#define RAYDIUM_NETWORK_PACKET_SIZE 512
|
|
#define RAYDIUM_NETWORK_TIMEOUT 10
|
|
#define RAYDIUM_NETWORK_PACKET_OFFSET 4
|
|
#define RAYDIUM_NETWORK_MAX_CLIENTS 8
|
|
#define RAYDIUM_NETWORK_MAX_SERVERS 32 // LAN server list
|
|
#define RAYDIUM_NETWORK_TX_QUEUE_SIZE 128
|
|
#define RAYDIUM_NETWORK_MAX_TRIES 8
|
|
#define RAYDIUM_NETWORK_MAX_NETCALLS 32
|
|
#define RAYDIUM_NETWORK_MAX_PROPAGS 32
|
|
#define RAYDIUM_NETWORK_ACK_DELAY_MAX 2
|
|
#define RAYDIUM_NETWORK_PROPAG_HEAD sizeof(int)
|
|
#define RAYDIUM_NETWORK_BEACON_DELAY 5
|
|
#define RAYDIUM_NETWORK_BEACON_DEFAULT_TTL 15
|
|
#define RAYDIUM_NETWORK_BEACON_INFO_MAX_LEN 100
|
|
#define RAYDIUM_NETWORK_MODE_NONE 0
|
|
#define RAYDIUM_NETWORK_MODE_CLIENT 1
|
|
#define RAYDIUM_NETWORK_MODE_SERVER 2
|
|
#define RAYDIUM_NETWORK_MODE_DISCOVER 3
|
|
//#define RAYDIUM_NETWORK_TCP SOCK_STREAM
|
|
#define RAYDIUM_NETWORK_UDP SOCK_DGRAM
|
|
#define RAYDIUM_NETWORK_DATA_OK 1
|
|
#define RAYDIUM_NETWORK_DATA_NONE 0
|
|
#define RAYDIUM_NETWORK_DATA_ERROR -1
|
|
|
|
#define RAYDIUM_NETWORK_PACKET_DATA 1
|
|
#define RAYDIUM_NETWORK_PACKET_ERROR_NO_MORE_PLACE 2
|
|
#define RAYDIUM_NETWORK_PACKET_ATTRIB_UID 3
|
|
#define RAYDIUM_NETWORK_PACKET_REQUEST_UID 4
|
|
#define RAYDIUM_NETWORK_PACKET_INFO_NAME 5
|
|
#define RAYDIUM_NETWORK_PACKET_ACK 6
|
|
#define RAYDIUM_NETWORK_PACKET_SERVER_BEACON 7
|
|
#define RAYDIUM_NETWORK_PACKET_ODE_DATA 10
|
|
#define RAYDIUM_NETWORK_PACKET_ODE_NEWELEM 11
|
|
#define RAYDIUM_NETWORK_PACKET_ODE_REMELEM 12
|
|
#define RAYDIUM_NETWORK_PACKET_ODE_NIDWHO 13
|
|
#define RAYDIUM_NETWORK_PACKET_ODE_EXPLOSION 14
|
|
#define RAYDIUM_NETWORK_PACKET_BASE 20
|
|
|
|
#define RAYDIUM_SOUND_NUM_BUFFERS 30
|
|
#define RAYDIUM_SOUND_NUM_SOURCES 30
|
|
#define SOUNDDATASIZE (4096*20)
|
|
//#define RAYDIUM_SOUND_NUM_ENVIRONMENTS 1
|
|
|
|
#define RAYDIUM_CONSOLE_MAX_LINES 18
|
|
#define RAYDIUM_CONSOLE_MAX_HISTORY 1000
|
|
#define RAYDIUM_CONSOLE_FONT_SIZE 16
|
|
#define RAYDIUM_CONSOLE_FONT_SPACER 0.5
|
|
#define RAYDIUM_CONSOLE_MAX_COMPLETION 10
|
|
|
|
#define RAYDIUM_TIMECALL_METHOD_NONE 0
|
|
#define RAYDIUM_TIMECALL_METHOD_CLOCK 1
|
|
#define RAYDIUM_TIMECALL_METHOD_DEVRTC 2
|
|
|
|
#define RAYDIUM_TIMECALL_FREQ_MIN 100
|
|
#define RAYDIUM_TIMECALL_FREQ_PREFERED 8192
|
|
#define RAYDIUM_TIMECALL_W32_MODULO_MIN 15
|
|
|
|
#define RAYDIUM_REGISTER_INT 1
|
|
#define RAYDIUM_REGISTER_FLOAT 2
|
|
#define RAYDIUM_REGISTER_STR 3
|
|
#define RAYDIUM_REGISTER_ICONST 4
|
|
#define RAYDIUM_REGISTER_FCONST 5
|
|
#define RAYDIUM_REGISTER_SCHAR 6
|
|
|
|
#define RAYDIUM_PARSER_TYPE_EOF 0
|
|
#define RAYDIUM_PARSER_TYPE_FLOAT 1
|
|
#define RAYDIUM_PARSER_TYPE_STRING 2
|
|
#define RAYDIUM_PARSER_TYPE_DEBUG 3
|
|
#define RAYDIUM_PARSER_TYPE_RAWDATA 4
|
|
|
|
#define RAYDIUM_OSD_FONT_SIZE_FACTOR (12.f)
|
|
|
|
#define RAYDIUM_RENDER_MULTITEX_AUTO_UV_FACT (50.f)
|
|
#define RAYDIUM_RENDER_REFLECTION_FACT (0.1f)
|
|
|
|
#define RAYDIUM_SKY_SPHERE_MAX_DETAIL 30
|
|
#define RAYDIUM_SKY_SPHERE_DEFAULT_DETAIL 25
|
|
|
|
#define RAYDIUM_CAPTURE_NONE 0
|
|
#define RAYDIUM_CAPTURE_TGA 1
|
|
#define RAYDIUM_CAPTURE_JPG 2
|
|
|
|
#define RAYDIUM_DB_FILENAME raydium_file_home_path("raydium.db")
|
|
#define RAYDIUM_DB_TEMP raydium_file_home_path("raydium.db.temp")
|
|
#define RAYDIUM_DB_SEPARATOR ';'
|
|
|
|
#define RAYDIUM_HDR_SIZE 64
|
|
#define RAYDIUM_HDR_PASS 8
|
|
#define RAYDIUM_HDR_EYE_SPEED_DEFAULT 0.1f
|
|
|
|
#define RAYDIUM_FOG_MODE_LINEAR GL_LINEAR
|
|
#define RAYDIUM_FOG_MODE_EXP GL_EXP
|
|
#define RAYDIUM_FOG_MODE_EXP2 GL_EXP2
|
|
|
|
|
|
__global int raydium_init_argc;
|
|
__global char **raydium_init_argv;
|
|
__global char raydium_init_wd[RAYDIUM_MAX_DIR_LEN];
|
|
__global char raydium_homedir[RAYDIUM_MAX_DIR_LEN];
|
|
|
|
__global int raydium_key_last;
|
|
__global signed char raydium_key[RAYDIUM_KEYBOARD_SIZE];
|
|
__global signed char raydium_key_trace; // change this from ingame console !
|
|
__global signed char raydium_mouse_click;
|
|
__global signed char raydium_mouse_button[3];
|
|
__global GLuint raydium_mouse_x;
|
|
__global GLuint raydium_mouse_y;
|
|
__global signed char raydium_joy_button[RAYDIUM_JOY_MAX_BUTTONS];
|
|
__global GLfloat raydium_joy_axis[RAYDIUM_JOY_MAX_AXIS];
|
|
__global signed char raydium_joy_click;
|
|
__global GLfloat raydium_joy_x;
|
|
__global GLfloat raydium_joy_y;
|
|
__global GLfloat raydium_joy_z;
|
|
__global int raydium_joy;
|
|
__global char raydium_joy_n_axes; // read only
|
|
__global char raydium_joy_n_buttons; // read only
|
|
|
|
|
|
__global GLuint raydium_texture_index;
|
|
__global GLuint raydium_texture_current_main;
|
|
__global GLuint raydium_texture_current_multi;
|
|
__global GLfloat raydium_texture_current_multi_u;
|
|
__global GLfloat raydium_texture_current_multi_v;
|
|
__global GLuint raydium_texture_current_env;
|
|
__global signed char raydium_texture_filter;
|
|
__global GLint raydium_texture_size_max;
|
|
__global GLint raydium_texture_units;
|
|
__global GLuint raydium_internal_size_vector_float_4;
|
|
__global GLuint raydium_texture_to_replace;
|
|
__global GLfloat raydium_texture_used_memory;
|
|
|
|
__global signed char raydium_projection;
|
|
__global GLfloat raydium_projection_fov; // perspective only
|
|
__global GLfloat raydium_projection_near; // perspective & ortho
|
|
__global GLfloat raydium_projection_far; // perspective & ortho
|
|
__global GLfloat raydium_projection_left; // ortho only
|
|
__global GLfloat raydium_projection_right; // ortho only
|
|
__global GLfloat raydium_projection_bottom; // ortho only
|
|
__global GLfloat raydium_projection_top; // ortho only
|
|
__global GLfloat raydium_background_color[4];
|
|
|
|
__global signed char raydium_sky_force;
|
|
__global signed char raydium_sky_atmosphere_enable_tag;
|
|
__global GLfloat raydium_sky_sphere_angle_orbit_u;
|
|
__global GLfloat raydium_sky_sphere_angle_orbit_v;
|
|
__global GLfloat raydium_sky_sphere_x_vel;
|
|
__global GLfloat raydium_sky_sphere_y_vel;
|
|
__global GLfloat raydium_sky_sphere_x_pos;
|
|
__global GLfloat raydium_sky_sphere_y_pos;
|
|
__global GLfloat raydium_sky_sphere_quality;
|
|
__global GLfloat raydium_sky_sphere_heigth;
|
|
__global signed char raydium_sky_sphere_generated;
|
|
|
|
__global GLsizei raydium_window_tx;
|
|
__global GLsizei raydium_window_ty;
|
|
__global signed char raydium_window_mode;
|
|
|
|
__global GLuint raydium_vertex_index;
|
|
__global GLuint raydium_vertex_counter;
|
|
__global signed char raydium_vertex_offset_triangle;
|
|
|
|
__global GLfloat *raydium_vertex_x;
|
|
__global GLfloat *raydium_vertex_y;
|
|
__global GLfloat *raydium_vertex_z;
|
|
__global GLfloat *raydium_vertex_normal_x;
|
|
__global GLfloat *raydium_vertex_normal_y;
|
|
__global GLfloat *raydium_vertex_normal_z;
|
|
__global GLfloat *raydium_vertex_normal_visu_x; //
|
|
__global GLfloat *raydium_vertex_normal_visu_y; // used for smoothing
|
|
__global GLfloat *raydium_vertex_normal_visu_z; //
|
|
__global GLfloat *raydium_vertex_texture_u;
|
|
__global GLfloat *raydium_vertex_texture_v;
|
|
__global GLuint *raydium_vertex_texture;
|
|
__global GLuint *raydium_vertex_texture_multi;
|
|
__global GLfloat *raydium_vertex_texture_multi_u;
|
|
__global GLfloat *raydium_vertex_texture_multi_v;
|
|
__global GLuint *raydium_vertex_texture_env;
|
|
__global signed char *raydium_vertex_tag;
|
|
|
|
__global signed char raydium_texture_islightmap[RAYDIUM_MAX_TEXTURES];
|
|
__global signed char raydium_texture_nolight[RAYDIUM_MAX_TEXTURES];
|
|
__global signed char raydium_texture_blended[RAYDIUM_MAX_TEXTURES];
|
|
__global signed char raydium_texture_hdr[RAYDIUM_MAX_TEXTURES];
|
|
__global signed char raydium_texture_env[RAYDIUM_MAX_TEXTURES];
|
|
__global GLint raydium_texture_shader[RAYDIUM_MAX_TEXTURES];
|
|
__global char raydium_texture_name[RAYDIUM_MAX_TEXTURES][RAYDIUM_MAX_NAME_LEN];
|
|
__global GLfloat raydium_texture_rgb[RAYDIUM_MAX_TEXTURES][4];
|
|
|
|
__global GLuint raydium_object_index;
|
|
__global GLuint raydium_object_start[RAYDIUM_MAX_OBJECTS];
|
|
__global GLuint raydium_object_end[RAYDIUM_MAX_OBJECTS];
|
|
__global char raydium_object_name[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_NAME_LEN];
|
|
__global signed char raydium_object_anims[RAYDIUM_MAX_OBJECTS]; // number of anims
|
|
__global GLuint raydium_object_anim_len[RAYDIUM_MAX_OBJECTS]; // len of each anim
|
|
__global GLuint raydium_object_anim_start[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIMS];
|
|
__global GLuint raydium_object_anim_end[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIMS];
|
|
__global char raydium_object_anim_names[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIMS][RAYDIUM_MAX_NAME_LEN]; // anims name array
|
|
__global GLuint raydium_object_anim_default_anim[RAYDIUM_MAX_OBJECTS];
|
|
__global GLuint raydium_object_anim_instance_current[RAYDIUM_MAX_OBJECTS]; // current "rendering" instance
|
|
__global GLfloat raydium_object_anim_automatic_factor[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIMS]; // frame automatic factor
|
|
__global GLfloat raydium_object_anim_time_factor;
|
|
// states
|
|
__global int raydium_object_anim_current[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIM_INSTANCES]; // current anim
|
|
__global GLfloat raydium_object_anim_frame_current[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIM_INSTANCES]; // current frame
|
|
__global int raydium_object_anim_previous[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIM_INSTANCES]; // anim switch blending (last anim)
|
|
__global GLfloat raydium_object_anim_frame_previous[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIM_INSTANCES]; // anim switch blending (last frame)
|
|
__global GLfloat raydium_object_anim_frame_previous_timeout[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIM_INSTANCES]; // "timer" for anim switch blending
|
|
__global int raydium_object_anim_punctually_flag[RAYDIUM_MAX_OBJECTS][RAYDIUM_MAX_OBJECT_ANIM_INSTANCES];
|
|
|
|
__global int raydium_render_fps;
|
|
__global GLfloat raydium_render_rgb_force[4];
|
|
__global GLfloat raydium_render_lightmap_color_value[4];
|
|
__global signed char raydium_render_rgb_force_tag;
|
|
__global char raydium_render_displaylists_tag;
|
|
__global GLboolean raydium_render_internal_light_previous_step;
|
|
|
|
__global signed char raydium_fog_enabled_tag;
|
|
__global signed char raydium_fog_volumetric_enabled_tag;
|
|
__global int raydium_fog_mode_value;
|
|
__global float raydium_fog_far_value;
|
|
__global float raydium_fog_near_value;
|
|
__global float raydium_fog_density_value;
|
|
__global GLfloat * raydium_fog_volumetric_array;
|
|
|
|
__global signed char raydium_light_enabled_tag;
|
|
__global signed char raydium_light_internal_state[RAYDIUM_MAX_LIGHTS];
|
|
__global GLfloat raydium_light_position[RAYDIUM_MAX_LIGHTS][4];
|
|
__global GLfloat raydium_light_color[RAYDIUM_MAX_LIGHTS][4];
|
|
__global GLfloat raydium_light_intensity[RAYDIUM_MAX_LIGHTS];
|
|
__global GLfloat raydium_light_blink_low[RAYDIUM_MAX_LIGHTS];
|
|
__global GLfloat raydium_light_blink_high[RAYDIUM_MAX_LIGHTS];
|
|
__global GLfloat raydium_light_blink_increment[RAYDIUM_MAX_LIGHTS];
|
|
// TODO: light_spot
|
|
|
|
__global signed char raydium_internal_vertex_next_extras;
|
|
__global GLfloat raydium_internal_vertex_next_u;
|
|
__global GLfloat raydium_internal_vertex_next_v;
|
|
__global GLfloat raydium_internal_vertex_next_nx;
|
|
__global GLfloat raydium_internal_vertex_next_ny;
|
|
__global GLfloat raydium_internal_vertex_next_nz;
|
|
|
|
__global signed char raydium_frame_first_camera_pass;
|
|
__global float raydium_frame_time;
|
|
__global GLfloat raydium_camera_x;
|
|
__global GLfloat raydium_camera_y; // read only, undocumented.
|
|
__global GLfloat raydium_camera_z;
|
|
__global signed char raydium_camera_pushed;
|
|
__global GLfloat raydium_camera_cursor_place[3];
|
|
__global GLfloat raydium_camera_look_at_roll;
|
|
__global GLfloat raydium_camera_rumble_amplitude;
|
|
__global GLfloat raydium_camera_rumble_evolution;
|
|
__global GLfloat raydium_camera_rumble_remaining;
|
|
|
|
typedef struct raydium_camera_Path
|
|
{
|
|
char name[RAYDIUM_MAX_NAME_LEN];
|
|
GLfloat x[RAYDIUM_MAX_CAMERA_PATH_STEPS];
|
|
GLfloat y[RAYDIUM_MAX_CAMERA_PATH_STEPS];
|
|
GLfloat z[RAYDIUM_MAX_CAMERA_PATH_STEPS];
|
|
GLfloat zoom[RAYDIUM_MAX_CAMERA_PATH_STEPS];
|
|
GLfloat roll[RAYDIUM_MAX_CAMERA_PATH_STEPS];
|
|
int steps;
|
|
} raydium_camera_Path;
|
|
__global raydium_camera_Path raydium_camera_path[RAYDIUM_MAX_CAMERA_PATHS];
|
|
__global signed char raydium_camera_path_reset_flag;
|
|
|
|
__global int raydium_network_socket;
|
|
__global int raydium_network_uid;
|
|
__global signed char raydium_network_mode;
|
|
__global signed char raydium_network_client[RAYDIUM_NETWORK_MAX_CLIENTS];
|
|
__global time_t raydium_network_start;
|
|
__global struct sockaddr
|
|
raydium_network_client_addr[RAYDIUM_NETWORK_MAX_CLIENTS];
|
|
__global time_t raydium_network_keepalive[RAYDIUM_NETWORK_MAX_CLIENTS];
|
|
__global char raydium_network_name_local[RAYDIUM_MAX_NAME_LEN];
|
|
__global char raydium_network_name[RAYDIUM_NETWORK_MAX_CLIENTS][RAYDIUM_MAX_NAME_LEN];
|
|
__global char raydium_network_connected_server[RAYDIUM_MAX_NAME_LEN];
|
|
__global int raydium_network_netcall_type[RAYDIUM_NETWORK_MAX_NETCALLS];
|
|
__global void * raydium_network_netcall_func[RAYDIUM_NETWORK_MAX_NETCALLS];
|
|
__global signed char raydium_network_netcall_tcp[RAYDIUM_NETWORK_MAX_NETCALLS];
|
|
__global void * raydium_network_on_connect;
|
|
__global void * raydium_network_on_disconnect;
|
|
__global int raydium_network_stat_rx;
|
|
__global int raydium_network_stat_tx;
|
|
__global int raydium_network_stat_reemitted;
|
|
__global int raydium_network_stat_double;
|
|
__global int raydium_network_stat_lost;
|
|
__global int raydium_network_stat_bogus_ack;
|
|
|
|
typedef struct raydium_network_Tcp
|
|
{
|
|
signed char state;
|
|
unsigned short tcpid;
|
|
char packet[RAYDIUM_NETWORK_PACKET_SIZE];
|
|
unsigned long time;
|
|
unsigned short retries_left;
|
|
struct sockaddr to;
|
|
int to_player;
|
|
} raydium_network_Tcp;
|
|
|
|
__global raydium_network_Tcp raydium_network_queue[RAYDIUM_NETWORK_TX_QUEUE_SIZE];
|
|
__global int raydium_network_queue_index;
|
|
|
|
__global unsigned short raydium_network_tcpid_i[RAYDIUM_NETWORK_TX_QUEUE_SIZE]; // ID
|
|
__global int raydium_network_tcpid_p[RAYDIUM_NETWORK_TX_QUEUE_SIZE]; // Player
|
|
__global int raydium_network_tcpid_index;
|
|
|
|
__global unsigned long raydium_netwok_queue_ack_delay_client;
|
|
__global unsigned long raydium_netwok_queue_ack_delay_server[RAYDIUM_NETWORK_MAX_CLIENTS];
|
|
__global signed char raydium_network_write_notcp;
|
|
|
|
typedef struct raydium_network_Propag
|
|
{
|
|
signed char state;
|
|
int type;
|
|
unsigned short size;
|
|
unsigned int version;
|
|
void *data;
|
|
} raydium_network_Propag;
|
|
|
|
__global raydium_network_Propag raydium_network_propag[RAYDIUM_NETWORK_MAX_PROPAGS];
|
|
|
|
typedef struct raydium_network_Beacon
|
|
{
|
|
int id;
|
|
char name[RAYDIUM_MAX_NAME_LEN];
|
|
char ip[RAYDIUM_MAX_NAME_LEN];
|
|
char info[RAYDIUM_NETWORK_BEACON_INFO_MAX_LEN];
|
|
int player_count;
|
|
int player_max;
|
|
unsigned long when; // 0 means "free"
|
|
} raydium_network_Beacon;
|
|
|
|
typedef struct raydium_network_BeaconSearch
|
|
{
|
|
signed char active;
|
|
char app_or_mod[RAYDIUM_MAX_NAME_LEN];
|
|
int version;
|
|
} raydium_network_BeaconSearch;
|
|
|
|
__global raydium_network_Beacon raydium_network_server_list[RAYDIUM_NETWORK_MAX_SERVERS];
|
|
__global char raydium_network_beacon[RAYDIUM_NETWORK_PACKET_SIZE];
|
|
__global int raydium_network_beacon_info_offset;
|
|
__global raydium_network_BeaconSearch raydium_network_beacon_search;
|
|
|
|
#ifdef linux
|
|
#define RAYDIUM_NETWORK_BROADCAST_INTERFACE_MAX 8
|
|
__global int raydium_network_broadcast_interface_index;
|
|
__global struct sockaddr_in raydium_network_broadcast_interfaces[RAYDIUM_NETWORK_BROADCAST_INTERFACE_MAX];
|
|
#endif
|
|
|
|
__global ALuint raydium_sound_buffer[RAYDIUM_SOUND_NUM_BUFFERS];
|
|
__global ALuint raydium_sound_source[RAYDIUM_SOUND_NUM_SOURCES];
|
|
__global ALfloat raydium_sound_source_fade_factor[RAYDIUM_SOUND_NUM_SOURCES];
|
|
__global char raydium_sound_source_fade_tofile[RAYDIUM_SOUND_NUM_SOURCES][RAYDIUM_MAX_NAME_LEN];
|
|
__global ALfloat raydium_sound_DefaultReferenceDistance;
|
|
__global int raydium_sound;
|
|
__global int raydium_sound_top_buffer;
|
|
__global char raydium_sound_music_buf[SOUNDDATASIZE];
|
|
__global FILE *raydium_sound_music_file;
|
|
__global OggVorbis_File raydium_sound_vf;
|
|
__global vorbis_info *raydium_sound_ogginfo;
|
|
__global int (*raydium_sound_music_eof_callback)(char *);
|
|
__global void (*raydium_sound_music_changed_callback)(void);
|
|
|
|
typedef struct raydium_sound_music_Info {
|
|
char artist[RAYDIUM_MAX_NAME_LEN];
|
|
char title [RAYDIUM_MAX_NAME_LEN];
|
|
char album [RAYDIUM_MAX_NAME_LEN];
|
|
} raydium_sound_music_Info;
|
|
|
|
__global raydium_sound_music_Info raydium_sound_music_info;
|
|
|
|
__global GLfloat raydium_osd_logo_angle;
|
|
__global GLuint raydium_osd_cursor_texture;
|
|
__global GLfloat raydium_osd_cursor_xsize;
|
|
__global GLfloat raydium_osd_cursor_ysize;
|
|
__global GLfloat raydium_osd_color[4];
|
|
#ifdef MAIN_C
|
|
__global GLfloat raydium_osd_ega[]=
|
|
{
|
|
0.0f, 0.0f, 0.0f, // 0: black
|
|
0.0f, 0.0f, 0.6f, // 1: blue
|
|
0.0f, 0.6f, 0.0f, // 2: green
|
|
0.0f, 0.6f, 0.6f, // 3: cyan
|
|
0.6f, 0.0f, 0.0f, // 4: red
|
|
0.6f, 0.0f, 0.6f, // 5: purple
|
|
0.6f, 0.3f, 0.0f, // 6: brown
|
|
0.6f, 0.6f, 0.6f, // 7: white
|
|
0.3f, 0.3f, 0.3f, // 8: grey
|
|
0.3f, 0.3f, 1.0f, // 9: light blue
|
|
0.3f, 1.0f, 0.3f, // A: light green
|
|
0.3f, 1.0f, 1.0f, // B: light cyan
|
|
1.0f, 0.3f, 0.3f, // C: light red
|
|
1.0f, 0.3f, 1.0f, // D: light purple
|
|
1.0f, 1.0f, 0.3f, // E: light yellow
|
|
1.0f, 1.0f, 1.0f // F: light white
|
|
};
|
|
#else
|
|
__global GLfloat raydium_osd_ega[48];
|
|
#endif
|
|
__global GLfloat raydium_osd_fade_color_timeleft;
|
|
__global GLfloat raydium_osd_fade_color_increment[4];
|
|
__global GLfloat raydium_osd_fade_color_current[4];
|
|
__global void * raydium_osd_fade_OnFadeEnd;
|
|
|
|
__global GLfloat raydium_console_pos;
|
|
__global GLfloat raydium_console_inc;
|
|
__global GLfloat raydium_console_config_max;
|
|
__global GLfloat raydium_console_config_speed;
|
|
__global char raydium_console_config_texture[RAYDIUM_MAX_NAME_LEN];
|
|
__global char raydium_console_config_font[RAYDIUM_MAX_NAME_LEN];
|
|
__global GLfloat raydium_console_cursor_blink;
|
|
__global char raydium_console_lines[RAYDIUM_CONSOLE_MAX_LINES][RAYDIUM_MAX_NAME_LEN];
|
|
__global int raydium_console_line_last;
|
|
__global char raydium_console_get_string[RAYDIUM_MAX_NAME_LEN];
|
|
__global char raydium_console_get_string_last[RAYDIUM_MAX_NAME_LEN];
|
|
__global void * raydium_console_gets_callback;
|
|
__global char raydium_console_history[RAYDIUM_CONSOLE_MAX_HISTORY][RAYDIUM_MAX_NAME_LEN];
|
|
__global int raydium_console_history_index; // store
|
|
__global int raydium_console_history_index_current; // user
|
|
__global char raydium_console_history_filename[RAYDIUM_MAX_NAME_LEN];
|
|
|
|
__global int raydium_timecall_index;
|
|
__global signed char raydium_timecall_method;
|
|
__global unsigned long raydium_timecall_max_frequency;
|
|
__global unsigned long raydium_timecall_clocks_per_sec;
|
|
__global int raydium_timecall_devrtc_handle;
|
|
__global unsigned long raydium_timecall_devrtc_clocks;
|
|
__global void * raydium_timecall_funct[RAYDIUM_MAX_TIMECALLS];
|
|
__global GLint raydium_timecall_soft_call[RAYDIUM_MAX_TIMECALLS];
|
|
__global clock_t raydium_timecall_interval[RAYDIUM_MAX_TIMECALLS];
|
|
__global clock_t raydium_timecall_next[RAYDIUM_MAX_TIMECALLS];
|
|
__global int raydium_timecall_w32_divmodulo;
|
|
|
|
__global signed char raydium_shadow_tag;
|
|
__global signed char raydium_shadow_rendering;
|
|
__global int raydium_shadow_ground_mesh;
|
|
|
|
__global signed char raydium_capture_asked;
|
|
__global char raydium_capture_filename[RAYDIUM_MAX_NAME_LEN];
|
|
|
|
__global signed char raydium_hdr_state;
|
|
__global signed char raydium_hdr_generated;
|
|
__global int raydium_hdr_texture_id;
|
|
__global float raydium_hdr_eye;
|
|
__global float raydium_hdr_eye_speed;
|
|
__global float raydium_hdr_alpha_max;
|
|
__global GLfloat raydium_hdr_color_local[4];
|
|
__global GLfloat raydium_hdr_color_ambient[4];
|
|
__global unsigned char *raydium_hdr_mem;
|
|
__global unsigned char *raydium_hdr_mem_hdr;
|
|
__global unsigned char *raydium_hdr_mem_hdr2;
|
|
__global unsigned char *raydium_hdr_mem_hdr3;
|
|
|
|
__global int raydium_register_variable_index;
|
|
__global int raydium_register_function_index;
|
|
__global char raydium_register_variable_name[RAYDIUM_MAX_REG_VARIABLES][RAYDIUM_MAX_NAME_LEN];
|
|
__global void * raydium_register_variable_addr[RAYDIUM_MAX_REG_VARIABLES];
|
|
__global int raydium_register_variable_type[RAYDIUM_MAX_REG_VARIABLES];
|
|
#ifdef PHP_SUPPORT
|
|
#define ZFE zend_function_entry
|
|
#else
|
|
#define ZFE void *
|
|
#endif
|
|
__global ZFE raydium_register_function_list[RAYDIUM_MAX_REG_FUNCTION];
|
|
|
|
__global char raydium_php_rayphp_path[RAYDIUM_MAX_NAME_LEN];
|
|
|
|
__global FILE *raydium_log_file;
|
|
__global char raydium_file_log_fopen[RAYDIUM_MAX_LOG_FOPEN][RAYDIUM_MAX_NAME_LEN];
|
|
__global int raydium_file_log_fopen_index;
|
|
|
|
typedef struct matrix4x4
|
|
{
|
|
double ray[16];
|
|
} matrix4x4;
|
|
|
|
#endif
|
|
// EOF
|