diff options
author | Jiri Hnidek <jiri.hnidek@tul.cz> | 2006-10-02 17:29:17 +0400 |
---|---|---|
committer | Jiri Hnidek <jiri.hnidek@tul.cz> | 2006-10-02 17:29:17 +0400 |
commit | b62927b85c8b213bafcac7a2f2943665017e7261 (patch) | |
tree | f7720b2ea4bf378d0acc654883065552e96b1261 /extern | |
parent | ab92fca3062356572a695225fa4389419ac25029 (diff) |
updated verse to version r6p1
Diffstat (limited to 'extern')
32 files changed, 430 insertions, 312 deletions
diff --git a/extern/verse/dist/Makefile.win32 b/extern/verse/dist/Makefile.win32 index 84ca20df7b5..548881c6a16 100644 --- a/extern/verse/dist/Makefile.win32 +++ b/extern/verse/dist/Makefile.win32 @@ -44,8 +44,8 @@ LIBVERSE_OBJ = v_gen_pack_init.obj v_gen_pack_a_node.obj v_gen_pack_b_node.obj v v_pack.obj v_pack_method.obj v_prime.obj v_randgen.obj v_util.obj # The server is a simple 1:1 mapping, but in Windows nmake ... That doesn't help much. :/ -VERSE_SRC = vs_connection.c vs_main.c vs_node_audio.c vs_node_bitmap.c vs_node_curve.c vs_node_geometry.c vs_node_head.c vs_node_material.c vs_node_object.c vs_node_particle.c vs_node_storage.c vs_node_text.c -VERSE_OBJ = vs_connection.obj vs_main.obj vs_node_audio.obj vs_node_bitmap.obj vs_node_curve.obj vs_node_geometry.obj \ +VERSE_SRC = vs_connection.c vs_main.c vs_master.c vs_node_audio.c vs_node_bitmap.c vs_node_curve.c vs_node_geometry.c vs_node_head.c vs_node_material.c vs_node_object.c vs_node_particle.c vs_node_storage.c vs_node_text.c +VERSE_OBJ = vs_connection.obj vs_main.obj vs_master.obj vs_node_audio.obj vs_node_bitmap.obj vs_node_curve.obj vs_node_geometry.obj \ vs_node_head.obj vs_node_material.obj vs_node_object.obj vs_node_particle.obj vs_node_storage.obj vs_node_text.obj # ----------------------------------------------------- diff --git a/extern/verse/dist/README.html b/extern/verse/dist/README.html index ab4f8bf3748..b3b3050bf12 100644 --- a/extern/verse/dist/README.html +++ b/extern/verse/dist/README.html @@ -2,6 +2,7 @@ <html> <head> <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> +<title>Verse README</title> <style type="text/css"> h1.title { @@ -58,6 +59,10 @@ Running "make" here will build the API library, "libverse.a" (and its header file, "verse.h"). These two will then be used to build the reference Verse server binary, called "verse". </p> +<p> +If you are more comfortable with <a href="http://www.scons.org/">SCons</a>, and of course have it +installed on your system, you can type "scons" instead. +</p> <h1>Starting the Server</h1> <p> @@ -79,18 +84,39 @@ It is possible that it gets assigned to someone else, in case Verse will need to You can use the following command line options to control the server's operation: </p> <dl> - <dt>-port=N</dt> + <dt>-h</dt> + <dd> + Print a help text, that shows all understood options. + </dd> + <dt>-ms</dt> + <dd> + Enables master server communications to the default, built-in address. Use the -h option to learn + what this address is. Please note that master server communication is <strong>disabled</strong> by default. + </dd> + <dt>-ms:ip=IP</dt> <dd> - Use the indicated port number, rather than the default. + Sets a new address to use for master server communication. This also implies -ms, i.e. the server + will try to register itself with the given master server. For details on the protocol used to do + this, please see the <a href="http://verse.blender.org/cms/Master_Server__v2.775.0.html">spec</a>. </dd> - <dt>-master=IP</dt> + <dt>-ms:de=DESC</dt> <dd> - Connect to a <a href="http://verse.blender.org/cms/Master_Server.713.0.html">master server</a> at address <i>IP</i>. + Sets the description to use for this server, when registering with the the master server. This is + only used if master server communication is actually enabled. The description is expected to be a + human-readable string, like <code>"A test server, run on a cable modem, and offline during local daytime"</code> + or something. </dd> - <dt>-Q</dt> + <dt>-ms:ta=TAGS</dt> <dd> - Don't register with a <a href="http://verse.blender.org/cms/Master_Server.713.0.html">master server</a>. - This is currently the default, as master server operation has not been widely used. + Sets the tags to use for this server, when registering with the the master server. This is only used + if master server communication is actually enabled. The tags consists of a comma-separated list of + single words. Each word must begin with a letter, and contain only letters, digits, or underscore + characters. For instance: <code>home,r6p1,linux,sweden,open</code>. + </dd> + <dt>-port=N</dt> + <dd> + Use the indicated port number, rather than the default. Note that ports below 1024 are generally + off-limits to ordinary users. Running Verse on such a port is not recommended. </dd> <dt>-version</dt> <dd> @@ -99,10 +125,16 @@ You can use the following command line options to control the server's operation </dd> </dl> <p> -For example, here is how to start the server, with a master server of <code>master.example.org</code>, -and a port number equal to 16333: +For example, here is how to start the server, register it with the default master server, and run +on port number equal to 16333: +</p> +<pre class="shell">~> ./server -ms -port=16333 +</pre> +<p> +Here is a more complicated example, that uses an explicit master server address, and also sets both +the description and tags: </p> -<pre class="shell">~> ./server -master=master.example.org -port=16333 +<pre class="shell">~> ./server -ms:ip=master.example.net -ms:de="A test server, for the documentation" -ms:ta=example,docs </pre> <p> Options can occur in any order, with later options overriding earlier ones, in case of conflicts. diff --git a/extern/verse/dist/SConstruct b/extern/verse/dist/SConstruct index 42c9a58a8c4..f2256c225af 100644 --- a/extern/verse/dist/SConstruct +++ b/extern/verse/dist/SConstruct @@ -1,12 +1,4 @@ -# -# SConstruct for Verse -# -# This file is still quite crude, but it does it's job, and -# is geared towards future extensions. -# -# I did this only on Windows so people should look into the -# if...elif... -# construction about the platform specific stuff. +#!/usr/bin/env python # # I think it is quite straight-forward to add new platforms, # just look at the old makefile and at the existing platforms. @@ -19,14 +11,18 @@ import os import sys +import re import time import string from distutils import sysconfig -Import('env') - root_build_dir = '..' + os.sep + 'build' + os.sep +config_file = 'config.opts' +version = '1.0' + +env = Environment () + defines = [] cflags = [] debug_flags = [] @@ -37,88 +33,130 @@ platform_libs = [] platform_libpath = [] platform_linkflags = [] -window_system = env['OURPLATFORM'] -if window_system == 'win32-vc': +if sys.platform == 'win32': print "Building on win32" defines += ['_WIN32'] warn_flags = ['/Wall'] platform_libs = ['ws2_32'] -elif window_system == 'win32-mingw': - defines += ['_WIN32', 'WIN32'] - platform_libs = ['shell32', 'kernel32', 'gdi32', 'user32', 'ws2_32'] -elif window_system == 'linux2': +elif sys.platform == 'linux2': print "Building on linux2" -elif window_system== 'openbsd3': +elif sys.platform == 'openbsd3': print "Building on openbsd3" -user_options_dict = env #user_options_env.Dictionary() -root_build_dir = user_options_dict['BF_BUILDDIR'] + os.sep + "extern" + os.sep + "verse" - -if user_options_dict['VERSE_BUILD_BINARY'] == 'release': +env_dict = env.Dictionary() +if os.path.exists (config_file): + print "Using config file: " + config_file +else: + print "Creating new config file: " + config_file + config = open (config_file, 'w') + config.write ("#Configuration file for verse SCons user definable options.\n") + config.write ("BUILD_BINARY = 'release'\n") + config.write ("\n# Compiler information.\n") + config.write ("HOST_CC = %r\n"%(env_dict['CC'])) + config.write ("HOST_CXX = %r\n"%(env_dict['CXX'])) + config.write ("TARGET_CC = %r\n"%(env_dict['CC'])) + config.write ("TARGET_CXX = %r\n"%(env_dict['CXX'])) + config.write ("TARGET_AR = %r\n"%(env_dict['AR'])) + config.write ("PATH = %r\n"%(os.environ['PATH'])) + +user_options_env = Environment() +user_options = Options (config_file) +user_options.AddOptions( + (EnumOption ('BUILD_BINARY', + 'Build a release or debug binary.', 'release', + allowed_values = ('release', 'debug'))), + ('BUILD_DIR', 'Target directory for intermediate files.', + root_build_dir), + (EnumOption ('REGEN_PROTO', + 'Whether to regenerate the protocol files', 'no', + allowed_values = ('yes', 'no'))), + ('HOST_CC', 'C compiler for the host platfor. This is the same as target platform when not cross compiling.', env_dict['CC']), + ('HOST_CXX', 'C++ compiler for the host platform. This is the same as target platform when not cross compiling.', env_dict['CXX']), + ('TARGET_CC', 'C compiler for the target platform.', env_dict['CC']), + ('TARGET_CXX', 'C++ compiler for the target platform.', env_dict['CXX']), + ('TARGET_AR', 'Linker command for linking libraries.', env_dict['AR']), + ('PATH', 'Standard search path', os.environ['PATH']) +) +user_options.Update (user_options_env) +user_options_dict = user_options_env.Dictionary() + +root_build_dir = user_options_dict['BUILD_DIR'] + +if user_options_dict['BUILD_BINARY'] == 'release': cflags = extra_flags + release_flags + warn_flags - if window_system == 'win32-vc': + if sys.platform == 'win32': defines += ['NDEBUG'] else: cflags = extra_flags + debug_flags + warn_flags - if window_system== 'win32-vc': + if sys.platform == 'win32': #defines += ['_DEBUG'] specifying this makes msvc want to link to python22_d.lib?? platform_linkflags += ['/DEBUG','/PDB:verse.pdb'] -library_env = env.Copy() #Environment() -library_env.Replace (CC = user_options_dict['CC']) -library_env.Replace (CXX = user_options_dict['CXX']) -#library_env.Replace (PATH = user_options_dict['PATH']) -#library_env.Replace (AR = user_options_dict['TARGET_AR']) + +env = Environment() +env.Replace (CC = user_options_dict['TARGET_CC']) +env.Replace (CXX = user_options_dict['TARGET_CXX']) +env.Replace (PATH = user_options_dict['PATH']) +env.Replace (AR = user_options_dict['TARGET_AR']) cmd_gen_files = (['v_cmd_gen.c', - 'v_cmd_def_a.c', - 'v_cmd_def_b.c', - 'v_cmd_def_c.c', - 'v_cmd_def_g.c', - 'v_cmd_def_m.c', - 'v_cmd_def_o.c', - 'v_cmd_def_s.c', - 'v_cmd_def_t.c' - ]) - -cmd_gen_deps = (['v_gen_pack_init.c', - 'v_gen_pack_a_node.c', - 'v_gen_pack_b_node.c', - 'v_gen_pack_c_node.c', - 'v_gen_pack_g_node.c', - 'v_gen_pack_m_node.c', - 'v_gen_pack_o_node.c', - 'v_gen_pack_s_node.c', - 'v_gen_pack_t_node.c', - ]) - -if user_options_dict['VERSE_REGEN_PROTO']=='yes': - cmd_gen_env = library_env.Copy() - cmd_gen_env.Append(CPPDEFINES=['V_GENERATE_FUNC_MODE']) - mkprot = cmd_gen_env.Program(target='mkprot', source=cmd_gen_files) - cmd_gen_env.Command('regen', '' , './mkprot') + 'v_cmd_def_a.c', + 'v_cmd_def_b.c', + 'v_cmd_def_c.c', + 'v_cmd_def_g.c', + 'v_cmd_def_m.c', + 'v_cmd_def_o.c', + 'v_cmd_def_s.c', + 'v_cmd_def_t.c' + ]) + +cmd_gen_deps = (['v_gen_pack_init.c']) + +proto_env = env.Copy() +proto_env.Append(CPPDEFINES=['V_GENERATE_FUNC_MODE']) +mkprot_tool = proto_env.Program(target = 'mkprot', source = cmd_gen_files) + +mkprot_re = re.compile('v_cmd_def_([a-z]{1}).c') +def mkprot_emitter(target = None, source = None, env = None): + newtargets = list() + for s in source: + m = mkprot_re.match(str(s)) + if m: + newtargets.append("v_gen_pack_"+m.group(1)+"_node.c") + newtargets.extend(['verse.h']) + env.Depends(newtargets, mkprot_tool) + return (newtargets, source) + +mkprot_bld = Builder(action = "\"" + mkprot_tool[0].abspath + "\"", + emitter = mkprot_emitter) + +env['BUILDERS']['Protocol'] = mkprot_bld + +cmd_gen_deps.extend(env.Protocol('do_mkprot', cmd_gen_files)) +cmd_gen_deps.pop() lib_source_files = (['v_cmd_buf.c', - 'v_connect.c', - 'v_connection.c', - 'v_encryption.c', - 'v_func_storage.c', - 'v_man_pack_node.c', - 'v_network.c', - 'v_network_in_que.c', - 'v_network_out_que.c', - 'v_pack.c', - 'v_pack_method.c', - 'v_prime.c', - 'v_randgen.c', - 'v_util.c', - 'v_bignum.c' - ]) -lib_source_files += cmd_gen_deps + 'v_connect.c', + 'v_connection.c', + 'v_encryption.c', + 'v_func_storage.c', + 'v_man_pack_node.c', + 'v_network.c', + 'v_network_in_que.c', + 'v_network_out_que.c', + 'v_pack.c', + 'v_pack_method.c', + 'v_prime.c', + 'v_randgen.c', + 'v_util.c', + 'v_bignum.c' + ]) +lib_source_files.extend(cmd_gen_deps) server_source_files = (['vs_connection.c', 'vs_main.c', + 'vs_master.c', 'vs_node_audio.c', 'vs_node_bitmap.c', 'vs_node_curve.c', @@ -131,21 +169,25 @@ server_source_files = (['vs_connection.c', 'vs_node_text.c' ]) -verselib_env = library_env.Copy() +verse_example_sources = (['examples/list-nodes.c']) + +verselib_env = env.Copy() verselib_env.Append(CPPDEFINES = defines) -#server commented out for now, though maybe there -#should be an option to build it. verseserver_env = env.Copy() verseserver_env.Append(CPPDEFINES = defines) -verseserver_env.Append (LIBS=['verse']) +verseserver_env.Append (LIBS=['libverse']) +verseserver_env.Append (LIBPATH = ['.']) verseserver_env.Append (LIBS= platform_libs) -verselib = env.BlenderLib(libname='verse', sources=lib_source_files, includes=[], defines=defines, libtype=['core', 'intern'], priority = [5, 5]) +verseexample_env = env.Copy() +verseexample_env.Append(CPPDEFINES = defines) +verseexample_env.Append (LIBS=['libverse']) +verseexample_env.Append (LIBPATH = ['.']) +verseexample_env.Append (LIBS= platform_libs) +verseexample_env.Append (CPPPATH = ['.']) + +verselib = verselib_env.Library(target='libverse', source=lib_source_files) +verseserver_env.Program(target='verse', source=server_source_files) +verseexample_env.Program(target='list-nodes', source=verse_example_sources) -verseserver_env.BlenderProg(builddir="#"+root_build_dir, progname="verse", - sources=server_source_files, libs=['verse'], - libpath='#'+user_options_dict['BF_BUILDDIR']+'/lib') - -if user_options_dict['VERSE_REGEN_PROTO']=='yes': - verselib_env.Depends(verselib, mkprot) diff --git a/extern/verse/dist/v_cmd_def_g.c b/extern/verse/dist/v_cmd_def_g.c index 66c26e9eadd..5a4ea7202b4 100644 --- a/extern/verse/dist/v_cmd_def_g.c +++ b/extern/verse/dist/v_cmd_def_g.c @@ -172,19 +172,9 @@ void v_gen_geometry_cmd_def(void) v_cg_add_param(VCGP_REAL64, "pos_x"); v_cg_add_param(VCGP_REAL64, "pos_y"); v_cg_add_param(VCGP_REAL64, "pos_z"); - v_cg_add_param(VCGP_NAME, "pos_label"); - v_cg_add_param(VCGP_POINTER_TYPE, "VNQuat64"); - v_cg_add_param(VCGP_POINTER, "rot"); - v_cg_add_param(VCGP_NAME, "rot_label"); - v_cg_add_param(VCGP_PACK_INLINE, "\tif(weight[0] != '\\0')\n\t\tbuffer_pos += vnp_pack_quat64(&buf[buffer_pos], rot);\n"); - v_cg_add_param(VCGP_UNPACK_INLINE, "\tif(weight[0] != 0)\n" - "\t{\n" - "\t\tVNQuat64\ttmp;\n" - "\t\tbuffer_pos += vnp_unpack_quat64(&buf[buffer_pos], &tmp);\n" - "\t\tif(func_g_bone_create != NULL)\n" - "\t\t\tfunc_g_bone_create(v_fs_get_user_data(64), node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, pos_label, &tmp, rot_label);\n" - "\t\treturn buffer_pos;\n" - "\t}\n"); + v_cg_add_param(VCGP_NAME, "position_label"); + v_cg_add_param(VCGP_NAME, "rotation_label"); + v_cg_add_param(VCGP_NAME, "scale_label"); v_cg_alias(FALSE, "g_bone_destroy", "if(weight[0] == 0)", 2, NULL); v_cg_end_cmd(); diff --git a/extern/verse/dist/v_cmd_def_o.c b/extern/verse/dist/v_cmd_def_o.c index 4fc5e894b36..a0135f2a4a7 100644 --- a/extern/verse/dist/v_cmd_def_o.c +++ b/extern/verse/dist/v_cmd_def_o.c @@ -299,7 +299,7 @@ void v_gen_object_cmd_def(void) "\t\telse\n" "\t\t\tdrag = 0.0;\n" "\t\tif(func_o_transform_rot_real64 != NULL)\n" - "\t\t\tfunc_o_transform_rot_real64(v_fs_get_user_data(33), node_id, time_s, time_f, &trot, q[0], q[1], q[2], drag);\n" + "\t\t\tfunc_o_transform_rot_real64(v_fs_get_user_data(36), node_id, time_s, time_f, &trot, q[0], q[1], q[2], drag);\n" "\t\treturn buffer_pos;\n" "\t}\n"); v_cg_add_param(VCGP_REAL64, "drag"); diff --git a/extern/verse/dist/v_cmd_def_s.c b/extern/verse/dist/v_cmd_def_s.c index a20e1daa430..1b8b69dcd6d 100644 --- a/extern/verse/dist/v_cmd_def_s.c +++ b/extern/verse/dist/v_cmd_def_s.c @@ -49,7 +49,7 @@ void v_gen_system_cmd_def(void) v_cg_add_param(VCGP_ENUM, "type"); v_cg_add_param(VCGP_ENUM_NAME, "VNodeOwner"); v_cg_add_param(VCGP_ENUM, "owner"); - v_cg_alias(FALSE, "node_destroy", "if(owner == (uint8)-1 || type >= V_NT_NUM_TYPES)", 1, NULL); + v_cg_alias(FALSE, "node_destroy", "if(owner == (uint8) ~0u || type >= V_NT_NUM_TYPES)", 1, NULL); v_cg_end_cmd(); v_cg_new_cmd(V_NT_SYSTEM, "node_subscribe", 11, VCGCT_NORMAL); diff --git a/extern/verse/dist/v_cmd_def_t.c b/extern/verse/dist/v_cmd_def_t.c index 1e739aa21e7..3c568b42d7b 100644 --- a/extern/verse/dist/v_cmd_def_t.c +++ b/extern/verse/dist/v_cmd_def_t.c @@ -9,7 +9,7 @@ void v_gen_text_cmd_def(void) { - v_cg_new_cmd(V_NT_TEXT, "t_set_language", 96, VCGCT_NORMAL); + v_cg_new_cmd(V_NT_TEXT, "t_language_set", 96, VCGCT_NORMAL); v_cg_add_param(VCGP_NODE_ID, "node_id"); v_cg_add_param(VCGP_END_ADDRESS, NULL); v_cg_add_param(VCGP_LONG_NAME, "language"); diff --git a/extern/verse/dist/v_cmd_gen.c b/extern/verse/dist/v_cmd_gen.c index b687983382d..55b1eabfe97 100644 --- a/extern/verse/dist/v_cmd_gen.c +++ b/extern/verse/dist/v_cmd_gen.c @@ -456,14 +456,14 @@ void v_cg_set_command_address(FILE *f, boolean alias) case VCGP_FRAGMENT_ID : if(count++ != 0) fprintf(f, " || "); - fprintf(f, "%s == (uint16)(-1)", VCGData.param_name[param[j]]); + fprintf(f, "%s == (uint16) ~0u", VCGData.param_name[param[j]]); break; case VCGP_NODE_ID : case VCGP_UINT32 : case VCGP_REAL32 : if(count++ != 0) fprintf(f, " || "); - fprintf(f, "%s == (uint32)(-1)", VCGData.param_name[param[j]]); + fprintf(f, "%s == (uint32) ~0u", VCGData.param_name[param[j]]); break; } j++; diff --git a/extern/verse/dist/v_connection.c b/extern/verse/dist/v_connection.c index b8631fc310b..fe4bf7a3105 100644 --- a/extern/verse/dist/v_connection.c +++ b/extern/verse/dist/v_connection.c @@ -318,7 +318,9 @@ void verse_callback_update(unsigned int microseconds) v_destroy_ordered_storage(VConData.con[VConData.current_connection].ordered_storage); if(VConData.con[VConData.current_connection].expected_key != NULL) free(VConData.con[VConData.current_connection].expected_key); - VConData.con[VConData.current_connection] = VConData.con[--VConData.con_count]; + if(VConData.con_count - 1 != VConData.current_connection) + VConData.con[VConData.current_connection] = VConData.con[VConData.con_count - 1]; + VConData.con_count--; if(connection >= VConData.con_count) VConData.current_connection = 0; return; diff --git a/extern/verse/dist/v_gen_pack_a_node.c b/extern/verse/dist/v_gen_pack_a_node.c index 4d6c4a46610..dc8e53e1a7f 100644 --- a/extern/verse/dist/v_gen_pack_a_node.c +++ b/extern/verse/dist/v_gen_pack_a_node.c @@ -34,7 +34,7 @@ void verse_send_a_buffer_create(VNodeID node_id, VBufferID buffer_id, const char buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], name, 16); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)type); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], frequency); - if(node_id == (uint32)(-1) || buffer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || buffer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -59,7 +59,7 @@ void verse_send_a_buffer_destroy(VNodeID node_id, VBufferID buffer_id) buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)-1); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], V_REAL64_MAX); - if(node_id == (uint32)(-1) || buffer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || buffer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -124,7 +124,7 @@ void verse_send_a_buffer_subscribe(VNodeID node_id, VBufferID layer_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], TRUE); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -147,7 +147,7 @@ void verse_send_a_buffer_unsubscribe(VNodeID node_id, VBufferID layer_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], FALSE); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -208,7 +208,7 @@ void verse_send_a_block_set(VNodeID node_id, VLayerID buffer_id, uint32 block_in buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], block_index); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)type); buffer_pos += vnp_pack_audio_block(&buf[buffer_pos], type, samples); - if(node_id == (uint32)(-1) || buffer_id == (uint16)(-1) || block_index == (uint32)(-1)) + if(node_id == (uint32) ~0u || buffer_id == (uint16) ~0u || block_index == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -232,7 +232,7 @@ void verse_send_a_block_clear(VNodeID node_id, VLayerID buffer_id, uint32 block_ buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], buffer_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], block_index); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)-1); - if(node_id == (uint32)(-1) || buffer_id == (uint16)(-1) || block_index == (uint32)(-1)) + if(node_id == (uint32) ~0u || buffer_id == (uint16) ~0u || block_index == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -303,7 +303,7 @@ void verse_send_a_stream_create(VNodeID node_id, VLayerID stream_id, const char buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], stream_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], name, 16); - if(node_id == (uint32)(-1) || stream_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || stream_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -326,7 +326,7 @@ void verse_send_a_stream_destroy(VNodeID node_id, VLayerID stream_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], stream_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); - if(node_id == (uint32)(-1) || stream_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || stream_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -383,7 +383,7 @@ void verse_send_a_stream_subscribe(VNodeID node_id, VLayerID stream_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], stream_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], TRUE); - if(node_id == (uint32)(-1) || stream_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || stream_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -406,7 +406,7 @@ void verse_send_a_stream_unsubscribe(VNodeID node_id, VLayerID stream_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], stream_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], FALSE); - if(node_id == (uint32)(-1) || stream_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || stream_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -469,7 +469,7 @@ void verse_send_a_stream(VNodeID node_id, VLayerID stream_id, uint32 time_s, uin buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)type); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], frequency); buffer_pos += vnp_pack_audio_block(&buf[buffer_pos], type, samples); - if(node_id == (uint32)(-1) || stream_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || stream_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); diff --git a/extern/verse/dist/v_gen_pack_b_node.c b/extern/verse/dist/v_gen_pack_b_node.c index 9ff7ab27bbc..a4792a10fe4 100644 --- a/extern/verse/dist/v_gen_pack_b_node.c +++ b/extern/verse/dist/v_gen_pack_b_node.c @@ -33,7 +33,7 @@ void verse_send_b_dimensions_set(VNodeID node_id, uint16 width, uint16 height, u buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], width); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], height); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], depth); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -82,7 +82,7 @@ void verse_send_b_layer_create(VNodeID node_id, VLayerID layer_id, const char *n buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], name, 16); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)type); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -106,7 +106,7 @@ void verse_send_b_layer_destroy(VNodeID node_id, VLayerID layer_id) buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)-1); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -169,7 +169,7 @@ void verse_send_b_layer_subscribe(VNodeID node_id, VLayerID layer_id, uint8 leve buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], level); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -192,7 +192,7 @@ void verse_send_b_layer_unsubscribe(VNodeID node_id, VLayerID layer_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], -1); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); diff --git a/extern/verse/dist/v_gen_pack_c_node.c b/extern/verse/dist/v_gen_pack_c_node.c index 192eac5a751..b75fa213383 100644 --- a/extern/verse/dist/v_gen_pack_c_node.c +++ b/extern/verse/dist/v_gen_pack_c_node.c @@ -33,7 +33,7 @@ void verse_send_c_curve_create(VNodeID node_id, VLayerID curve_id, const char *n buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], curve_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], name, 16); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], dimensions); - if(node_id == (uint32)(-1) || curve_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || curve_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -57,7 +57,7 @@ void verse_send_c_curve_destroy(VNodeID node_id, VLayerID curve_id) buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], curve_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], -1); - if(node_id == (uint32)(-1) || curve_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || curve_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -118,7 +118,7 @@ void verse_send_c_curve_subscribe(VNodeID node_id, VLayerID curve_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], curve_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], TRUE); - if(node_id == (uint32)(-1) || curve_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || curve_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -141,7 +141,7 @@ void verse_send_c_curve_unsubscribe(VNodeID node_id, VLayerID curve_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], curve_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], FALSE); - if(node_id == (uint32)(-1) || curve_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || curve_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); diff --git a/extern/verse/dist/v_gen_pack_g_node.c b/extern/verse/dist/v_gen_pack_g_node.c index 7b2b0259cfe..5a70173554d 100644 --- a/extern/verse/dist/v_gen_pack_g_node.c +++ b/extern/verse/dist/v_gen_pack_g_node.c @@ -35,7 +35,7 @@ void verse_send_g_layer_create(VNodeID node_id, VLayerID layer_id, const char *n buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)type); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], def_uint); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], def_real); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -61,7 +61,7 @@ void verse_send_g_layer_destroy(VNodeID node_id, VLayerID layer_id) buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)-1); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], -1); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], V_REAL64_MAX); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -128,7 +128,7 @@ void verse_send_g_layer_subscribe(VNodeID node_id, VLayerID layer_id, VNRealForm buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)type); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -151,7 +151,7 @@ void verse_send_g_layer_unsubscribe(VNodeID node_id, VLayerID layer_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)-1); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -213,7 +213,7 @@ void verse_send_g_vertex_set_xyz_real32(VNodeID node_id, VLayerID layer_id, uint buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], x); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], y); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], z); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || vertex_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || vertex_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -239,7 +239,7 @@ void verse_send_g_vertex_delete_real32(VNodeID node_id, uint32 vertex_id) buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], V_REAL32_MAX); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], V_REAL32_MAX); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], V_REAL32_MAX); - if(node_id == (uint32)(-1) || vertex_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || vertex_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -305,7 +305,7 @@ void verse_send_g_vertex_set_xyz_real64(VNodeID node_id, VLayerID layer_id, uint buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], x); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], y); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], z); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || vertex_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || vertex_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -331,7 +331,7 @@ void verse_send_g_vertex_delete_real64(VNodeID node_id, uint32 vertex_id) buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], V_REAL64_MAX); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], V_REAL64_MAX); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], V_REAL64_MAX); - if(node_id == (uint32)(-1) || vertex_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || vertex_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -395,7 +395,7 @@ void verse_send_g_vertex_set_uint32(VNodeID node_id, VLayerID layer_id, uint32 v buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], vertex_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], value); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || vertex_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || vertex_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -444,7 +444,7 @@ void verse_send_g_vertex_set_real64(VNodeID node_id, VLayerID layer_id, uint32 v buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], vertex_id); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], value); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || vertex_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || vertex_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -493,7 +493,7 @@ void verse_send_g_vertex_set_real32(VNodeID node_id, VLayerID layer_id, uint32 v buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], vertex_id); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], value); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || vertex_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || vertex_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -545,7 +545,7 @@ void verse_send_g_polygon_set_corner_uint32(VNodeID node_id, VLayerID layer_id, buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], v1); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], v2); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], v3); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || polygon_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || polygon_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -572,7 +572,7 @@ void verse_send_g_polygon_delete(VNodeID node_id, uint32 polygon_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], -1); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], -1); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], -1); - if(node_id == (uint32)(-1) || polygon_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || polygon_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -641,7 +641,7 @@ void verse_send_g_polygon_set_corner_real64(VNodeID node_id, VLayerID layer_id, buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], v1); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], v2); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], v3); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || polygon_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || polygon_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -699,7 +699,7 @@ void verse_send_g_polygon_set_corner_real32(VNodeID node_id, VLayerID layer_id, buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], v1); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], v2); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], v3); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || polygon_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || polygon_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -754,7 +754,7 @@ void verse_send_g_polygon_set_face_uint8(VNodeID node_id, VLayerID layer_id, uin buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], polygon_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], value); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || polygon_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || polygon_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -803,7 +803,7 @@ void verse_send_g_polygon_set_face_uint32(VNodeID node_id, VLayerID layer_id, ui buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], polygon_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], value); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || polygon_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || polygon_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -852,7 +852,7 @@ void verse_send_g_polygon_set_face_real64(VNodeID node_id, VLayerID layer_id, ui buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], polygon_id); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], value); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || polygon_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || polygon_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -901,7 +901,7 @@ void verse_send_g_polygon_set_face_real32(VNodeID node_id, VLayerID layer_id, ui buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], layer_id); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], polygon_id); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], value); - if(node_id == (uint32)(-1) || layer_id == (uint16)(-1) || polygon_id == (uint32)(-1)) + if(node_id == (uint32) ~0u || layer_id == (uint16) ~0u || polygon_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); @@ -949,7 +949,7 @@ void verse_send_g_crease_set_vertex(VNodeID node_id, const char *layer, uint32 d buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], layer, 16); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], def_crease); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -997,7 +997,7 @@ void verse_send_g_crease_set_edge(VNodeID node_id, const char *layer, uint32 def buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], layer, 16); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], def_crease); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -1030,17 +1030,17 @@ unsigned int v_unpack_g_crease_set_edge(const char *buf, size_t buffer_length) return buffer_pos; } -void verse_send_g_bone_create(VNodeID node_id, uint16 bone_id, const char *weight, const char *reference, uint16 parent, real64 pos_x, real64 pos_y, real64 pos_z, const char *pos_label, const VNQuat64 *rot, const char *rot_label) +void verse_send_g_bone_create(VNodeID node_id, uint16 bone_id, const char *weight, const char *reference, uint16 parent, real64 pos_x, real64 pos_y, real64 pos_z, const char *position_label, const char *rotation_label, const char *scale_label) { uint8 *buf; unsigned int buffer_pos = 0; VCMDBufHead *head; - head = v_cmd_buf_allocate(VCMDBS_1500);/* Allocating the buffer */ + head = v_cmd_buf_allocate(VCMDBS_160);/* Allocating the buffer */ buf = ((VCMDBuffer10 *)head)->buf; buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], 64); /* Pack the command. */ #if defined V_PRINT_SEND_COMMANDS - printf("send: verse_send_g_bone_create(node_id = %u bone_id = %u weight = %s reference = %s parent = %u pos_x = %f pos_y = %f pos_z = %f pos_label = %s rot = %p rot_label = %s );\n", node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, pos_label, rot, rot_label); + printf("send: verse_send_g_bone_create(node_id = %u bone_id = %u weight = %s reference = %s parent = %u pos_x = %f pos_y = %f pos_z = %f position_label = %s rotation_label = %s scale_label = %s );\n", node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, position_label, rotation_label, scale_label); #endif buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], bone_id); @@ -1050,11 +1050,10 @@ void verse_send_g_bone_create(VNodeID node_id, uint16 bone_id, const char *weigh buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], pos_x); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], pos_y); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], pos_z); - buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], pos_label, 16); - buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], rot_label, 16); - if(weight[0] != '\0') - buffer_pos += vnp_pack_quat64(&buf[buffer_pos], rot); - if(node_id == (uint32)(-1) || bone_id == (uint16)(-1)) + buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], position_label, 16); + buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], rotation_label, 16); + buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], scale_label, 16); + if(node_id == (uint32) ~0u || bone_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -1067,7 +1066,7 @@ void verse_send_g_bone_destroy(VNodeID node_id, uint16 bone_id) uint8 *buf; unsigned int buffer_pos = 0; VCMDBufHead *head; - head = v_cmd_buf_allocate(VCMDBS_1500);/* Allocating the buffer */ + head = v_cmd_buf_allocate(VCMDBS_160);/* Allocating the buffer */ buf = ((VCMDBuffer10 *)head)->buf; buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], 64); /* Pack the command. */ @@ -1084,7 +1083,8 @@ void verse_send_g_bone_destroy(VNodeID node_id, uint16 bone_id) buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], V_REAL64_MAX); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); - if(node_id == (uint32)(-1) || bone_id == (uint16)(-1)) + buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); + if(node_id == (uint32) ~0u || bone_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -1095,7 +1095,7 @@ void verse_send_g_bone_destroy(VNodeID node_id, uint16 bone_id) unsigned int v_unpack_g_bone_create(const char *buf, size_t buffer_length) { unsigned int buffer_pos = 0; - void (* func_g_bone_create)(void *user_data, VNodeID node_id, uint16 bone_id, const char *weight, const char *reference, uint16 parent, real64 pos_x, real64 pos_y, real64 pos_z, const char *pos_label, const VNQuat64 *rot, const char *rot_label); + void (* func_g_bone_create)(void *user_data, VNodeID node_id, uint16 bone_id, const char *weight, const char *reference, uint16 parent, real64 pos_x, real64 pos_y, real64 pos_z, const char *position_label, const char *rotation_label, const char *scale_label); VNodeID node_id; uint16 bone_id; char weight[16]; @@ -1104,9 +1104,9 @@ unsigned int v_unpack_g_bone_create(const char *buf, size_t buffer_length) real64 pos_x; real64 pos_y; real64 pos_z; - char pos_label[16]; - const VNQuat64 *rot; - char rot_label[16]; + char position_label[16]; + char rotation_label[16]; + char scale_label[16]; func_g_bone_create = v_fs_get_user_func(64); if(buffer_length < 6) @@ -1123,27 +1123,19 @@ unsigned int v_unpack_g_bone_create(const char *buf, size_t buffer_length) buffer_pos += vnp_raw_unpack_real64(&buf[buffer_pos], &pos_x); buffer_pos += vnp_raw_unpack_real64(&buf[buffer_pos], &pos_y); buffer_pos += vnp_raw_unpack_real64(&buf[buffer_pos], &pos_z); - buffer_pos += vnp_raw_unpack_string(&buf[buffer_pos], pos_label, 16, buffer_length - buffer_pos); + buffer_pos += vnp_raw_unpack_string(&buf[buffer_pos], position_label, 16, buffer_length - buffer_pos); if(buffer_length < 0 + buffer_pos) return -1; - buffer_pos += vnp_raw_unpack_string(&buf[buffer_pos], rot_label, 16, buffer_length - buffer_pos); + buffer_pos += vnp_raw_unpack_string(&buf[buffer_pos], rotation_label, 16, buffer_length - buffer_pos); if(buffer_length < 0 + buffer_pos) return -1; + buffer_pos += vnp_raw_unpack_string(&buf[buffer_pos], scale_label, 16, buffer_length - buffer_pos); #if defined V_PRINT_RECEIVE_COMMANDS if(weight[0] == 0) printf("receive: verse_send_g_bone_destroy(node_id = %u bone_id = %u ); callback = %p\n", node_id, bone_id, v_fs_get_alias_user_func(64)); else - printf("receive: verse_send_g_bone_create(node_id = %u bone_id = %u weight = %s reference = %s parent = %u pos_x = %f pos_y = %f pos_z = %f pos_label = %s rot_label = %s ); callback = %p\n", node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, pos_label, rot_label, v_fs_get_user_func(64)); + printf("receive: verse_send_g_bone_create(node_id = %u bone_id = %u weight = %s reference = %s parent = %u pos_x = %f pos_y = %f pos_z = %f position_label = %s rotation_label = %s scale_label = %s ); callback = %p\n", node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, position_label, rotation_label, scale_label, v_fs_get_user_func(64)); #endif - if(weight[0] != 0) - { - VNQuat64 tmp; - buffer_pos += vnp_unpack_quat64(&buf[buffer_pos], &tmp); - if(func_g_bone_create != NULL) - func_g_bone_create(v_fs_get_user_data(64), node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, pos_label, &tmp, rot_label); - return buffer_pos; - } - if(weight[0] == 0) { void (* alias_g_bone_destroy)(void *user_data, VNodeID node_id, uint16 bone_id); @@ -1153,7 +1145,7 @@ unsigned int v_unpack_g_bone_create(const char *buf, size_t buffer_length) return buffer_pos; } if(func_g_bone_create != NULL) - func_g_bone_create(v_fs_get_user_data(64), node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, pos_label, rot, rot_label); + func_g_bone_create(v_fs_get_user_data(64), node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, position_label, rotation_label, scale_label); return buffer_pos; } diff --git a/extern/verse/dist/v_gen_pack_init.c b/extern/verse/dist/v_gen_pack_init.c index dabc2c31202..64aa83a3d27 100644 --- a/extern/verse/dist/v_gen_pack_init.c +++ b/extern/verse/dist/v_gen_pack_init.c @@ -77,7 +77,7 @@ void init_pack_and_unpack(void) v_fs_add_func(81, v_unpack_b_layer_create, verse_send_b_layer_create, verse_send_b_layer_destroy); v_fs_add_func(82, v_unpack_b_layer_subscribe, verse_send_b_layer_subscribe, verse_send_b_layer_unsubscribe); v_fs_add_func(83, v_unpack_b_tile_set, verse_send_b_tile_set, NULL); - v_fs_add_func(96, v_unpack_t_set_language, verse_send_t_set_language, NULL); + v_fs_add_func(96, v_unpack_t_language_set, verse_send_t_language_set, NULL); v_fs_add_func(97, v_unpack_t_buffer_create, verse_send_t_buffer_create, verse_send_t_buffer_destroy); v_fs_add_func(98, v_unpack_t_buffer_subscribe, verse_send_t_buffer_subscribe, verse_send_t_buffer_unsubscribe); v_fs_add_func(99, v_unpack_t_text_set, verse_send_t_text_set, NULL); diff --git a/extern/verse/dist/v_gen_pack_m_node.c b/extern/verse/dist/v_gen_pack_m_node.c index 518368d2c0a..376b6c51c39 100644 --- a/extern/verse/dist/v_gen_pack_m_node.c +++ b/extern/verse/dist/v_gen_pack_m_node.c @@ -137,7 +137,7 @@ void verse_send_m_fragment_create(VNodeID node_id, VNMFragmentID frag_id, VNMFra buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], fragment->output.back); break; } - if(node_id == (uint32)(-1) || frag_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || frag_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -160,7 +160,7 @@ void verse_send_m_fragment_destroy(VNodeID node_id, VNMFragmentID frag_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], frag_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)-1); - if(node_id == (uint32)(-1) || frag_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || frag_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); diff --git a/extern/verse/dist/v_gen_pack_o_node.c b/extern/verse/dist/v_gen_pack_o_node.c index b366c9e64b7..5d60bafe1d0 100644 --- a/extern/verse/dist/v_gen_pack_o_node.c +++ b/extern/verse/dist/v_gen_pack_o_node.c @@ -68,7 +68,7 @@ void verse_send_o_transform_pos_real32(VNodeID node_id, uint32 time_s, uint32 ti vnp_raw_pack_uint8(&buf[cmd], mask); }if(FALSE) buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], drag); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -174,7 +174,7 @@ void verse_send_o_transform_rot_real32(VNodeID node_id, uint32 time_s, uint32 ti } if(FALSE) buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], drag); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -251,7 +251,7 @@ void verse_send_o_transform_scale_real32(VNodeID node_id, real32 scale_x, real32 buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], scale_x); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], scale_y); buffer_pos += vnp_raw_pack_real32(&buf[buffer_pos], scale_z); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -335,7 +335,7 @@ void verse_send_o_transform_pos_real64(VNodeID node_id, uint32 time_s, uint32 ti vnp_raw_pack_uint8(&buf[cmd], mask); }if(FALSE) buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], drag); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -441,7 +441,7 @@ void verse_send_o_transform_rot_real64(VNodeID node_id, uint32 time_s, uint32 ti } if(FALSE) buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], drag); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -492,7 +492,7 @@ unsigned int v_unpack_o_transform_rot_real64(const char *buf, size_t buffer_leng else drag = 0.0; if(func_o_transform_rot_real64 != NULL) - func_o_transform_rot_real64(v_fs_get_user_data(33), node_id, time_s, time_f, &trot, q[0], q[1], q[2], drag); + func_o_transform_rot_real64(v_fs_get_user_data(36), node_id, time_s, time_f, &trot, q[0], q[1], q[2], drag); return buffer_pos; } @@ -518,7 +518,7 @@ void verse_send_o_transform_scale_real64(VNodeID node_id, real64 scale_x, real64 buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], scale_x); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], scale_y); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], scale_z); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -566,7 +566,7 @@ void verse_send_o_transform_subscribe(VNodeID node_id, VNRealFormat type) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)type); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], TRUE); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -589,7 +589,7 @@ void verse_send_o_transform_unsubscribe(VNodeID node_id, VNRealFormat type) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)type); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], FALSE); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -651,7 +651,7 @@ void verse_send_o_light_set(VNodeID node_id, real64 light_r, real64 light_g, rea buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], light_r); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], light_g); buffer_pos += vnp_raw_pack_real64(&buf[buffer_pos], light_b); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -702,7 +702,7 @@ void verse_send_o_link_set(VNodeID node_id, uint16 link_id, VNodeID link, const buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], label, 16); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], target_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], TRUE); - if(node_id == (uint32)(-1) || link_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || link_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -728,7 +728,7 @@ void verse_send_o_link_destroy(VNodeID node_id, uint16 link_id) buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], -1); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], FALSE); - if(node_id == (uint32)(-1) || link_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || link_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -795,7 +795,7 @@ void verse_send_o_method_group_create(VNodeID node_id, uint16 group_id, const ch buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], group_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], name, 16); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -818,7 +818,7 @@ void verse_send_o_method_group_destroy(VNodeID node_id, uint16 group_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], group_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -875,7 +875,7 @@ void verse_send_o_method_group_subscribe(VNodeID node_id, uint16 group_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], group_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], TRUE); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -898,7 +898,7 @@ void verse_send_o_method_group_unsubscribe(VNodeID node_id, uint16 group_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], group_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], FALSE); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -974,7 +974,7 @@ void verse_send_o_method_create(VNodeID node_id, uint16 group_id, uint16 method_ buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], param_names[i], 1500 - buffer_pos); } } - if(node_id == (uint32)(-1) || group_id == (uint16)(-1) || method_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u || method_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 9); else v_cmd_buf_set_address_size(head, 9); @@ -999,7 +999,7 @@ void verse_send_o_method_destroy(VNodeID node_id, uint16 group_id, uint16 method buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], method_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 512); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], -1); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1) || method_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u || method_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 9); else v_cmd_buf_set_address_size(head, 9); @@ -1186,7 +1186,7 @@ void verse_send_o_anim_run(VNodeID node_id, uint16 link_id, uint32 time_s, uint3 } vnp_raw_pack_uint8(&buf[cmd], mask); } - if(node_id == (uint32)(-1) || link_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || link_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -1264,7 +1264,7 @@ void verse_send_o_hide(VNodeID node_id, uint8 hidden) #endif buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], hidden); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); diff --git a/extern/verse/dist/v_gen_pack_s_node.c b/extern/verse/dist/v_gen_pack_s_node.c index be36cc22596..6a9f4a05a0b 100644 --- a/extern/verse/dist/v_gen_pack_s_node.c +++ b/extern/verse/dist/v_gen_pack_s_node.c @@ -106,7 +106,7 @@ void verse_send_node_index_subscribe(uint32 mask) printf("send: verse_send_node_index_subscribe(mask = %u );\n", mask); #endif buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], mask); - if(mask == (uint32)(-1)) + if(mask == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -148,7 +148,7 @@ void verse_send_node_create(VNodeID node_id, VNodeType type, VNodeOwner owner) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)type); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)owner); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -171,7 +171,7 @@ void verse_send_node_destroy(VNodeID node_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)-1); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)-1); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -197,12 +197,12 @@ unsigned int v_unpack_node_create(const char *buf, size_t buffer_length) buffer_pos += vnp_raw_unpack_uint8(&buf[buffer_pos], &enum_temp); owner = (VNodeOwner)enum_temp; #if defined V_PRINT_RECEIVE_COMMANDS - if(owner == (uint8)-1 || type >= V_NT_NUM_TYPES) + if(owner == (uint8) ~0u || type >= V_NT_NUM_TYPES) printf("receive: verse_send_node_destroy(node_id = %u ); callback = %p\n", node_id, v_fs_get_alias_user_func(10)); else printf("receive: verse_send_node_create(node_id = %u type = %u owner = %u ); callback = %p\n", node_id, type, owner, v_fs_get_user_func(10)); #endif - if(owner == (uint8)-1 || type >= V_NT_NUM_TYPES) + if(owner == (uint8) ~0u || type >= V_NT_NUM_TYPES) { void (* alias_node_destroy)(void *user_data, VNodeID node_id); alias_node_destroy = v_fs_get_alias_user_func(10); @@ -230,7 +230,7 @@ void verse_send_node_subscribe(VNodeID node_id) #endif buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], TRUE); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -252,7 +252,7 @@ void verse_send_node_unsubscribe(VNodeID node_id) #endif buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], FALSE); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -309,7 +309,7 @@ void verse_send_tag_group_create(VNodeID node_id, uint16 group_id, const char *n buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], group_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], name, 16); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -332,7 +332,7 @@ void verse_send_tag_group_destroy(VNodeID node_id, uint16 group_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], group_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -389,7 +389,7 @@ void verse_send_tag_group_subscribe(VNodeID node_id, uint16 group_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], group_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], TRUE); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -412,7 +412,7 @@ void verse_send_tag_group_unsubscribe(VNodeID node_id, uint16 group_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], group_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], FALSE); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -529,7 +529,7 @@ void verse_send_tag_create(VNodeID node_id, uint16 group_id, uint16 tag_id, cons default : ; } - if(node_id == (uint32)(-1) || group_id == (uint16)(-1) || tag_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u || tag_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 9); else v_cmd_buf_set_address_size(head, 9); @@ -554,7 +554,7 @@ void verse_send_tag_destroy(VNodeID node_id, uint16 group_id, uint16 tag_id) buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], tag_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], (uint8)-1); - if(node_id == (uint32)(-1) || group_id == (uint16)(-1) || tag_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || group_id == (uint16) ~0u || tag_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 9); else v_cmd_buf_set_address_size(head, 9); @@ -678,7 +678,7 @@ void verse_send_node_name_set(VNodeID node_id, const char *name) #endif buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], name, 512); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); diff --git a/extern/verse/dist/v_gen_pack_t_node.c b/extern/verse/dist/v_gen_pack_t_node.c index d04d54e28e0..0cfbf8b7f21 100644 --- a/extern/verse/dist/v_gen_pack_t_node.c +++ b/extern/verse/dist/v_gen_pack_t_node.c @@ -17,7 +17,7 @@ #include "v_connection.h" #include "v_util.h" -void verse_send_t_set_language(VNodeID node_id, const char *language) +void verse_send_t_language_set(VNodeID node_id, const char *language) { uint8 *buf; unsigned int buffer_pos = 0; @@ -27,11 +27,11 @@ void verse_send_t_set_language(VNodeID node_id, const char *language) buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], 96); /* Pack the command. */ #if defined V_PRINT_SEND_COMMANDS - printf("send: verse_send_t_set_language(node_id = %u language = %s );\n", node_id, language); + printf("send: verse_send_t_language_set(node_id = %u language = %s );\n", node_id, language); #endif buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], language, 512); - if(node_id == (uint32)(-1)) + if(node_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 5); else v_cmd_buf_set_address_size(head, 5); @@ -39,23 +39,23 @@ void verse_send_t_set_language(VNodeID node_id, const char *language) v_noq_send_buf(v_con_get_network_queue(), head); } -unsigned int v_unpack_t_set_language(const char *buf, size_t buffer_length) +unsigned int v_unpack_t_language_set(const char *buf, size_t buffer_length) { unsigned int buffer_pos = 0; - void (* func_t_set_language)(void *user_data, VNodeID node_id, const char *language); + void (* func_t_language_set)(void *user_data, VNodeID node_id, const char *language); VNodeID node_id; char language[512]; - func_t_set_language = v_fs_get_user_func(96); + func_t_language_set = v_fs_get_user_func(96); if(buffer_length < 4) return -1; buffer_pos += vnp_raw_unpack_uint32(&buf[buffer_pos], &node_id); buffer_pos += vnp_raw_unpack_string(&buf[buffer_pos], language, 512, buffer_length - buffer_pos); #if defined V_PRINT_RECEIVE_COMMANDS - printf("receive: verse_send_t_set_language(node_id = %u language = %s ); callback = %p\n", node_id, language, v_fs_get_user_func(96)); + printf("receive: verse_send_t_language_set(node_id = %u language = %s ); callback = %p\n", node_id, language, v_fs_get_user_func(96)); #endif - if(func_t_set_language != NULL) - func_t_set_language(v_fs_get_user_data(96), node_id, language); + if(func_t_language_set != NULL) + func_t_language_set(v_fs_get_user_data(96), node_id, language); return buffer_pos; } @@ -75,7 +75,7 @@ void verse_send_t_buffer_create(VNodeID node_id, VBufferID buffer_id, const char buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], buffer_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], name, 16); - if(node_id == (uint32)(-1) || buffer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || buffer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -98,7 +98,7 @@ void verse_send_t_buffer_destroy(VNodeID node_id, VBufferID buffer_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], buffer_id); buffer_pos += vnp_raw_pack_string(&buf[buffer_pos], NULL, 16); - if(node_id == (uint32)(-1) || buffer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || buffer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -155,7 +155,7 @@ void verse_send_t_buffer_subscribe(VNodeID node_id, VBufferID buffer_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], buffer_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], TRUE); - if(node_id == (uint32)(-1) || buffer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || buffer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); @@ -178,7 +178,7 @@ void verse_send_t_buffer_unsubscribe(VNodeID node_id, VBufferID buffer_id) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], node_id); buffer_pos += vnp_raw_pack_uint16(&buf[buffer_pos], buffer_id); buffer_pos += vnp_raw_pack_uint8(&buf[buffer_pos], FALSE); - if(node_id == (uint32)(-1) || buffer_id == (uint16)(-1)) + if(node_id == (uint32) ~0u || buffer_id == (uint16) ~0u) v_cmd_buf_set_unique_address_size(head, 7); else v_cmd_buf_set_address_size(head, 7); diff --git a/extern/verse/dist/v_gen_unpack_func.h b/extern/verse/dist/v_gen_unpack_func.h index 6e13d9d1f28..462777608c7 100644 --- a/extern/verse/dist/v_gen_unpack_func.h +++ b/extern/verse/dist/v_gen_unpack_func.h @@ -48,7 +48,7 @@ extern unsigned int v_unpack_b_dimensions_set(const char *data, size_t length); extern unsigned int v_unpack_b_layer_create(const char *data, size_t length); extern unsigned int v_unpack_b_layer_subscribe(const char *data, size_t length); extern unsigned int v_unpack_b_tile_set(const char *data, size_t length); -extern unsigned int v_unpack_t_set_language(const char *data, size_t length); +extern unsigned int v_unpack_t_language_set(const char *data, size_t length); extern unsigned int v_unpack_t_buffer_create(const char *data, size_t length); extern unsigned int v_unpack_t_buffer_subscribe(const char *data, size_t length); extern unsigned int v_unpack_t_text_set(const char *data, size_t length); diff --git a/extern/verse/dist/v_man_pack_node.c b/extern/verse/dist/v_man_pack_node.c index 1b44bdadd15..21b5acdbd8f 100644 --- a/extern/verse/dist/v_man_pack_node.c +++ b/extern/verse/dist/v_man_pack_node.c @@ -382,7 +382,7 @@ void verse_send_c_key_set(VNodeID node_id, VLayerID curve_id, uint32 key_id, uin for(i = 0; i < dimensions; i++) buffer_pos += vnp_raw_pack_uint32(&buf[buffer_pos], post_pos[i]); - if(key_id == (uint32)(-1)) + if(key_id == (uint32) ~0u) v_cmd_buf_set_unique_address_size(head, 11); else v_cmd_buf_set_address_size(head, 11); diff --git a/extern/verse/dist/v_network.c b/extern/verse/dist/v_network.c index 2341edf9994..a7ed87762ce 100644 --- a/extern/verse/dist/v_network.c +++ b/extern/verse/dist/v_network.c @@ -119,26 +119,47 @@ void v_n_socket_destroy(void) boolean v_n_set_network_address(VNetworkAddress *address, const char *host_name) { - struct hostent *he; - char *colon = NULL; + struct hostent *he; + char *colon = NULL, *buf = NULL; + boolean ok = FALSE; + v_n_socket_create(); address->port = VERSE_STD_CONNECT_TO_PORT; + /* If a port number is included, as indicated by a colon, we need to work a bit more. */ if((colon = strchr(host_name, ':')) != NULL) { - unsigned int tp; - *colon = '\0'; - if(sscanf(colon + 1, "%u", &tp) == 1) - address->port = tp; + size_t hl = strlen(host_name); + + if((buf = malloc(hl + 1)) != NULL) + { + unsigned int tp; + + strcpy(buf, host_name); + colon = buf + (colon - host_name); + *colon = '\0'; + host_name = buf; + if(sscanf(colon + 1, "%u", &tp) == 1) + { + address->port = (unsigned short) tp; + if(address->port != tp) /* Protect against overflow. */ + host_name = NULL; + } + else + host_name = NULL; /* Protect against parse error. */ + } + else + return FALSE; } - if((he = gethostbyname(host_name)) != NULL) + if(host_name != NULL && (he = gethostbyname(host_name)) != NULL) { memcpy(&address->ip, he->h_addr_list[0], he->h_length); - address->ip = htonl(address->ip); - }else - return FALSE; - if(colon != NULL) - *colon = ':'; - return TRUE; + address->ip = ntohl(address->ip); + ok = TRUE; + } + if(buf != NULL) + free(buf); + + return ok; } int v_n_send_data(VNetworkAddress *address, const char *data, size_t length) diff --git a/extern/verse/dist/v_network_in_que.c b/extern/verse/dist/v_network_in_que.c index 77f1c3a3a72..d99a4ad11ec 100644 --- a/extern/verse/dist/v_network_in_que.c +++ b/extern/verse/dist/v_network_in_que.c @@ -30,15 +30,30 @@ void v_niq_clear(VNetInQueue *queue) /* Set queue's last-used timestamp to "now". */ void v_niq_timer_update(VNetInQueue *queue) { - v_n_get_current_time(&queue->seconds, NULL); + v_n_get_current_time(&queue->seconds, &queue->fractions); + queue->acc_seconds = queue->acc_fractions = 0; } -uint32 v_niq_time_out(const VNetInQueue *queue) +uint32 v_niq_time_out(VNetInQueue *queue) { - uint32 seconds; - v_n_get_current_time(&seconds, NULL); + uint32 fractions, f; + + /* Magic code to disregard if the clock moves forward more than one second at a time. + * This should help keep Verse alive on e.g. a notebook that is suspended. + */ + v_n_get_current_time(NULL, &fractions); + if(fractions < queue->fractions) + f = 0xffffffffu - queue->fractions + fractions; + else + f = fractions - queue->fractions; +/* printf("now=%u last=%u -> f=%u\n", fractions, queue->fractions, f);*/ + if(queue->acc_fractions + f < queue->acc_fractions) + queue->acc_seconds += 1; + queue->acc_fractions += f; + queue->fractions = fractions; + /* printf("queue at %p has seconds=%u, now=%u -> diff=%u\n", queue, queue->seconds, seconds, seconds - queue->seconds);*/ - return seconds - queue->seconds; + return queue->acc_seconds; } VNetInPacked * v_niq_get(VNetInQueue *queue, size_t *length) diff --git a/extern/verse/dist/v_network_in_que.h b/extern/verse/dist/v_network_in_que.h index ff835e7fb14..9241fe18fe8 100644 --- a/extern/verse/dist/v_network_in_que.h +++ b/extern/verse/dist/v_network_in_que.h @@ -3,7 +3,8 @@ typedef struct{ void *oldest; void *newest; uint32 packet_id; - uint32 seconds; + uint32 seconds, fractions; /* Current time. */ + uint32 acc_seconds, acc_fractions; /* Accumulated time. */ }VNetInQueue; typedef struct{ @@ -20,4 +21,4 @@ extern VNetInPacked * v_niq_get(VNetInQueue *queue, size_t *length); extern void v_niq_release(VNetInQueue *queue, VNetInPacked *p); extern char * v_niq_store(VNetInQueue *queue, size_t length, unsigned int packet_id); unsigned int v_niq_free(VNetInQueue *queue); -extern uint32 v_niq_time_out(const VNetInQueue *queue); +extern uint32 v_niq_time_out(VNetInQueue *queue); diff --git a/extern/verse/dist/verse.h b/extern/verse/dist/verse.h index 75207c943db..53ce674725a 100644 --- a/extern/verse/dist/verse.h +++ b/extern/verse/dist/verse.h @@ -19,7 +19,7 @@ extern "C" { /* Release information. */ #define V_RELEASE_NUMBER 6 -#define V_RELEASE_PATCH 0 +#define V_RELEASE_PATCH 1 #define V_RELEASE_LABEL "" typedef unsigned char boolean; @@ -32,8 +32,8 @@ typedef unsigned int uint32; typedef float real32; typedef double real64; -#define V_REAL64_MAX 1.7976931348623158e+308 /* max value */ -#define V_REAL32_MAX 3.40282347e+38F +#define V_REAL64_MAX 1.7976931348623158e+308 +#define V_REAL32_MAX 3.402823466e+38f #if !defined TRUE #define TRUE 1 @@ -483,7 +483,7 @@ extern void verse_send_g_polygon_set_face_real64(VNodeID node_id, VLayerID layer extern void verse_send_g_polygon_set_face_real32(VNodeID node_id, VLayerID layer_id, uint32 polygon_id, real32 value); extern void verse_send_g_crease_set_vertex(VNodeID node_id, const char *layer, uint32 def_crease); extern void verse_send_g_crease_set_edge(VNodeID node_id, const char *layer, uint32 def_crease); -extern void verse_send_g_bone_create(VNodeID node_id, uint16 bone_id, const char *weight, const char *reference, uint16 parent, real64 pos_x, real64 pos_y, real64 pos_z, const char *pos_label, const VNQuat64 *rot, const char *rot_label); +extern void verse_send_g_bone_create(VNodeID node_id, uint16 bone_id, const char *weight, const char *reference, uint16 parent, real64 pos_x, real64 pos_y, real64 pos_z, const char *position_label, const char *rotation_label, const char *scale_label); extern void verse_send_g_bone_destroy(VNodeID node_id, uint16 bone_id); extern void verse_send_m_fragment_create(VNodeID node_id, VNMFragmentID frag_id, VNMFragmentType type, const VMatFrag *fragment); @@ -496,7 +496,7 @@ extern void verse_send_b_layer_subscribe(VNodeID node_id, VLayerID layer_id, uin extern void verse_send_b_layer_unsubscribe(VNodeID node_id, VLayerID layer_id); extern void verse_send_b_tile_set(VNodeID node_id, VLayerID layer_id, uint16 tile_x, uint16 tile_y, uint16 z, VNBLayerType type, const VNBTile *tile); -extern void verse_send_t_set_language(VNodeID node_id, const char *language); +extern void verse_send_t_language_set(VNodeID node_id, const char *language); extern void verse_send_t_buffer_create(VNodeID node_id, VBufferID buffer_id, const char *name); extern void verse_send_t_buffer_destroy(VNodeID node_id, VBufferID buffer_id); extern void verse_send_t_buffer_subscribe(VNodeID node_id, VBufferID buffer_id); diff --git a/extern/verse/dist/verse_header.h b/extern/verse/dist/verse_header.h index 4d69492e50d..3f3403265fd 100644 --- a/extern/verse/dist/verse_header.h +++ b/extern/verse/dist/verse_header.h @@ -5,7 +5,7 @@ /* Release information. */ #define V_RELEASE_NUMBER 6 -#define V_RELEASE_PATCH 0 +#define V_RELEASE_PATCH 1 #define V_RELEASE_LABEL "" typedef unsigned char boolean; @@ -18,8 +18,8 @@ typedef unsigned int uint32; typedef float real32; typedef double real64; -#define V_REAL64_MAX 1.7976931348623158e+308 /* max value */ -#define V_REAL32_MAX 3.40282347e+38F +#define V_REAL64_MAX 1.7976931348623158e+308 +#define V_REAL32_MAX 3.402823466e+38f #if !defined TRUE #define TRUE 1 diff --git a/extern/verse/dist/vs_main.c b/extern/verse/dist/vs_main.c index 7e7655a7082..3b388eecc56 100644 --- a/extern/verse/dist/vs_main.c +++ b/extern/verse/dist/vs_main.c @@ -16,18 +16,10 @@ #include "v_util.h" #include "vs_server.h" -#define MASTER_SERVER_PERIOD (1.0 * 60.0) - extern VNodeID vs_node_create(VNodeID owner_id, unsigned int type); extern void callback_send_node_destroy(void *user_data, VNodeID node_id); extern void vs_reset_owner(VNodeID owner_id); -static void callback_send_ping(void *user, const char *address, const char *message) -{ - printf("Bouncing ping '%s' back to '%s'\n", message, address); - verse_send_ping(address, message); -} - static void callback_send_connect(void *user, const char *name, const char *pass, const char *address, const uint8 *host_id) { VNodeID avatar; @@ -96,29 +88,52 @@ static void cb_sigint_handler(int sig) } } -static void master_server_update(VUtilTimer *timer, const char *master_server) +static void callback_send_ping(void *user, const char *address, const char *message) +{ + if(strncmp(message, "DESCRIBE", 8) == 0 && message[8] == ' ') + vs_master_handle_describe(address, message + 9); +} + +static void usage(void) { - if(master_server == NULL || v_timer_elapsed(timer) < MASTER_SERVER_PERIOD) - return; - verse_send_ping(master_server, "MS:ANNOUNCE"); - v_timer_start(timer); - printf("MS:ANNOUNCE sent to %s\n", master_server); + printf("Verse server usage:\n"); + printf(" -h\t\t\tShow this usage information.\n"); + printf(" -ms\t\t\tRegisters the server with a master server at the address\n"); + printf(" \t\t\tgiven with the -ms:ip= option. Off by default.\n"); + printf(" -ms:ip=IP[:PORT]\tSet master server to register with. Implies -ms.\n"); + printf(" \t\t\tThe default address is <%s>.\n", vs_master_get_address()); + printf(" -ms:de=DESC\t\tSet description, sent to master server.\n"); + printf(" -ms:ta=TAGS\t\tSet tags, sent to master server.\n"); + printf(" -port=PORT\t\tSet port to use for incoming connections.\n"); + printf(" -version\t\tPrint version information and exit.\n"); } int main(int argc, char **argv) { - const char *ms_address = NULL; - VUtilTimer ms_timer; uint32 i, seconds, fractions, port = VERSE_STD_CONNECT_PORT; signal(SIGINT, cb_sigint_handler); + vs_master_set_address("master.uni-verse.org"); /* The default master address. */ + vs_master_set_enabled(FALSE); /* Make sure master server support is disabled. */ for(i = 1; i < (uint32) argc; i++) { - if(strcmp(argv[i], "-Q") == 0) - ms_address = NULL; - else if(strncmp(argv[i], "-master=", 9) == 0) - ms_address = argv[i] + 9; + if(strcmp(argv[i], "-h") == 0) + { + usage(); + return EXIT_SUCCESS; + } + else if(strcmp(argv[i], "-ms") == 0) + vs_master_set_enabled(TRUE); + else if(strncmp(argv[i], "-ms:ip=", 7) == 0) + { + vs_master_set_address(argv[i] + 7); + vs_master_set_enabled(TRUE); + } + else if(strncmp(argv[i], "-ms:de=", 7) == 0) + vs_master_set_desc(argv[i] + 7); + else if(strncmp(argv[i], "-ms:ta=", 7) == 0) + vs_master_set_tags(argv[i] + 7); else if(strncmp(argv[i], "-port=", 6) == 0) port = strtoul(argv[i] + 6, NULL, 0); else if(strcmp(argv[i], "-version") == 0) @@ -127,10 +142,10 @@ int main(int argc, char **argv) return EXIT_SUCCESS; } else - fprintf(stderr, "Ignoring unknown argument \"%s\"\n", argv[i]); + fprintf(stderr, "Ignoring unknown argument \"%s\", try -h for help\n", argv[i]); } - printf("Verse Server r%up%u%s by Eskil Steenberg <http://www.blender.org/modules/verse/>\n", V_RELEASE_NUMBER, V_RELEASE_PATCH, V_RELEASE_LABEL); + printf("Verse Server r%up%u%s by Eskil Steenberg <http://verse.blender.org/>\n", V_RELEASE_NUMBER, V_RELEASE_PATCH, V_RELEASE_LABEL); verse_set_port(port); /* The Verse standard port. */ printf(" Listening on port %d\n", port); @@ -153,13 +168,11 @@ int main(int argc, char **argv) verse_callback_set(verse_send_connect, callback_send_connect, NULL); verse_callback_set(verse_send_connect_terminate, callback_send_connect_terminate, NULL); - v_timer_start(&ms_timer); - v_timer_advance(&ms_timer, MASTER_SERVER_PERIOD - 1.0); while(TRUE) { vs_set_next_session(); verse_callback_update(1000000); - master_server_update(&ms_timer, ms_address); + vs_master_update(); } return EXIT_SUCCESS; } diff --git a/extern/verse/dist/vs_node_audio.c b/extern/verse/dist/vs_node_audio.c index a61e8040138..e69d3d9b3ec 100644 --- a/extern/verse/dist/vs_node_audio.c +++ b/extern/verse/dist/vs_node_audio.c @@ -292,7 +292,7 @@ static void callback_send_a_block_set(void *user, VNodeID node_id, VLayerID buff VSNodeAudio *node; unsigned int i, count; - if(type < 0 || type > VN_A_BLOCK_REAL64) /* Protect blocksize array. */ + if(type > VN_A_BLOCK_REAL64) /* Protect blocksize array. */ return; node = (VSNodeAudio *)vs_get_node(node_id, V_NT_AUDIO); diff --git a/extern/verse/dist/vs_node_geometry.c b/extern/verse/dist/vs_node_geometry.c index c3b7a268a72..4b1f88c8ac2 100644 --- a/extern/verse/dist/vs_node_geometry.c +++ b/extern/verse/dist/vs_node_geometry.c @@ -35,9 +35,9 @@ typedef struct { real64 pos_x; real64 pos_y; real64 pos_z; - char pos_label[16]; - VNQuat64 rot; - char rot_label[16]; + char position_label[16]; + char rotation_label[16]; + char scale_label[16]; } VSNGBone; typedef struct { @@ -136,8 +136,8 @@ void vs_g_subscribe(VSNodeGeometry *node) { if(node->bones[i].weight[0] != 0) verse_send_g_bone_create(node->head.id, (uint16)i, node->bones[i].weight, node->bones[i].reference, node->bones[i].parent, - node->bones[i].pos_x, node->bones[i].pos_y, node->bones[i].pos_z, node->bones[i].pos_label, - &node->bones[i].rot, node->bones[i].rot_label); + node->bones[i].pos_x, node->bones[i].pos_y, node->bones[i].pos_z, node->bones[i].position_label, + node->bones[i].rotation_label, node->bones[i].scale_label); } } @@ -368,42 +368,42 @@ static void callback_send_g_layer_subscribe(void *user, VNodeID node_id, VLayerI break; case VN_G_LAYER_POLYGON_CORNER_UINT32 : for(i = 0; i < node->poly_size; i++) - if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) -1 && !(((uint32 *)layer->layer)[i * 4] == layer->def.integer && ((uint32 *)layer->layer)[i * 4 + 1] == layer->def.integer && ((uint32 *)layer->layer)[i * 4 + 2] == layer->def.integer && ((uint32 *)layer->layer)[i * 4 + 3] == layer->def.integer)) + if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) ~0u && !(((uint32 *)layer->layer)[i * 4] == layer->def.integer && ((uint32 *)layer->layer)[i * 4 + 1] == layer->def.integer && ((uint32 *)layer->layer)[i * 4 + 2] == layer->def.integer && ((uint32 *)layer->layer)[i * 4 + 3] == layer->def.integer)) verse_send_g_polygon_set_corner_uint32(node_id, layer_id, i, ((uint32 *)layer->layer)[i * 4], ((uint32 *)layer->layer)[i * 4 + 1], ((uint32 *)layer->layer)[i * 4 + 2], ((uint32 *)layer->layer)[i * 4 + 3]); break; case VN_G_LAYER_POLYGON_CORNER_REAL : if(type == VN_FORMAT_REAL64) { for(i = 0; i < node->poly_size; i++) - if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) -1 && !(((real64 *)layer->layer)[i * 4] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 1] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 2] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 3] == layer->def.real)) + if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) ~0u && !(((real64 *)layer->layer)[i * 4] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 1] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 2] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 3] == layer->def.real)) verse_send_g_polygon_set_corner_real64(node_id, layer_id, i, ((real64 *)layer->layer)[i * 4], ((real64 *)layer->layer)[i * 4 + 1], ((real64 *)layer->layer)[i * 4 + 2], ((real64 *)layer->layer)[i * 4 + 3]); }else { for(i = 0; i < node->poly_size; i++) - if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) -1 && !(((real64 *)layer->layer)[i * 4] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 1] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 2] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 3] == layer->def.real)) + if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) ~0u && !(((real64 *)layer->layer)[i * 4] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 1] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 2] == layer->def.real && ((real64 *)layer->layer)[i * 4 + 3] == layer->def.real)) verse_send_g_polygon_set_corner_real32(node_id, layer_id, i, (float)((real64 *)layer->layer)[i * 4], (float)((real64 *)layer->layer)[i * 4 + 1], (float)((real64 *)layer->layer)[i * 4 + 2], (float)((real64 *)layer->layer)[i * 4 + 3]); } break; case VN_G_LAYER_POLYGON_FACE_UINT8 : for(i = 0; i < node->poly_size; i++) - if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) -1 && ((uint8 *)layer->layer)[i] != layer->def.integer) + if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) ~0u && ((uint8 *)layer->layer)[i] != layer->def.integer) verse_send_g_polygon_set_face_uint8(node_id, layer_id, i, ((uint8 *)layer->layer)[i]); break; case VN_G_LAYER_POLYGON_FACE_UINT32 : for(i = 0; i < node->poly_size; i++) - if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) -1 && ((uint32 *)layer->layer)[i] != layer->def.integer) + if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) ~0u && ((uint32 *)layer->layer)[i] != layer->def.integer) verse_send_g_polygon_set_face_uint32(node_id, layer_id, i, ((uint32 *)layer->layer)[i]); break; case VN_G_LAYER_POLYGON_FACE_REAL : if(type == VN_FORMAT_REAL64) { for(i = 0; i < node->poly_size; i++) - if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) -1 && ((real64 *)layer->layer)[i] != layer->def.real) + if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) ~0u && ((real64 *)layer->layer)[i] != layer->def.real) verse_send_g_polygon_set_face_real64(node_id, layer_id, i, ((real64 *)layer->layer)[i]); }else { for(i = 0; i < node->poly_size; i++) - if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) -1 && ((real64 *)layer->layer)[i] != layer->def.real) + if(((uint32 *)node->layer[1].layer)[i * 4] != (uint32) ~0u && ((real64 *)layer->layer)[i] != layer->def.real) verse_send_g_polygon_set_face_real32(node_id, layer_id, i, (float)((real64 *)layer->layer)[i]); } break; @@ -955,8 +955,8 @@ static void callback_send_g_crease_set_edge(void *user, VNodeID node_id, const c void callback_send_g_bone_create(void *user, VNodeID node_id, uint16 bone_id, const char *weight, const char *reference, uint16 parent, - real64 pos_x, real64 pos_y, real64 pos_z, const char *pos_label, - const VNQuat64 *rot, const char *rot_label) + real64 pos_x, real64 pos_y, real64 pos_z, + const char *position_label, const char *rotation_label, const char *scale_label) { VSNodeGeometry *node; unsigned int i, count; @@ -984,15 +984,15 @@ void callback_send_g_bone_create(void *user, VNodeID node_id, uint16 bone_id, co node->bones[bone_id].pos_x = pos_x; node->bones[bone_id].pos_y = pos_y; node->bones[bone_id].pos_z = pos_z; - v_strlcpy(node->bones[bone_id].pos_label, pos_label, sizeof node->bones[bone_id].pos_label); - node->bones[bone_id].rot = *rot; - v_strlcpy(node->bones[bone_id].rot_label, rot_label, sizeof node->bones[bone_id].rot_label); + v_strlcpy(node->bones[bone_id].position_label, position_label, sizeof node->bones[bone_id].position_label); + v_strlcpy(node->bones[bone_id].rotation_label, rotation_label, sizeof node->bones[bone_id].rotation_label); + v_strlcpy(node->bones[bone_id].scale_label, scale_label, sizeof node->bones[bone_id].scale_label); count = vs_get_subscript_count(node->head.subscribers); for(i = 0; i < count; i++) { vs_set_subscript_session(node->head.subscribers, i); - verse_send_g_bone_create(node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, pos_label, rot, rot_label); + verse_send_g_bone_create(node_id, bone_id, weight, reference, parent, pos_x, pos_y, pos_z, position_label, rotation_label, scale_label); } vs_reset_subscript_session(); } diff --git a/extern/verse/dist/vs_node_material.c b/extern/verse/dist/vs_node_material.c index d332d1ea613..06983c599cc 100644 --- a/extern/verse/dist/vs_node_material.c +++ b/extern/verse/dist/vs_node_material.c @@ -65,8 +65,9 @@ static void callback_send_m_fragment_create(void *user, VNodeID node_id, VNMFrag return; if(node->frag_count + 32 < frag_id) frag_id = (uint16)-1; - if(frag_id == (uint16)-1) - for(frag_id = 0; frag_id < node->frag_count && node->frag[frag_id].type < VN_M_FT_OUTPUT + 1; frag_id++); + if(frag_id == (uint16) ~0u) + for(frag_id = 0; frag_id < node->frag_count && node->frag[frag_id].type < VN_M_FT_OUTPUT + 1; frag_id++) + ; if(frag_id >= node->frag_count) { node->frag = realloc(node->frag, (sizeof *node->frag) * (node->frag_count + 16)); diff --git a/extern/verse/dist/vs_node_object.c b/extern/verse/dist/vs_node_object.c index cee0b8162de..019419e43a1 100644 --- a/extern/verse/dist/vs_node_object.c +++ b/extern/verse/dist/vs_node_object.c @@ -609,6 +609,7 @@ static void callback_send_o_method_group_subscribe(void *user, VNodeID node_id, { VSNodeObject *node; unsigned int i, j; + node = (VSNodeObject *)vs_get_node(node_id, V_NT_OBJECT); if(node == NULL || vs_get_node(node_id, V_NT_OBJECT) == NULL) return; @@ -641,7 +642,7 @@ static void callback_send_o_method_create(void *user, VNodeID node_id, uint16 gr VSNodeObject *node; unsigned int i, j, count; VSMethodGroup *group; - + node = (VSNodeObject *) vs_get_node(node_id, V_NT_OBJECT); if(node == NULL || vs_get_node(node_id, V_NT_OBJECT) == NULL) return; diff --git a/extern/verse/dist/vs_node_text.c b/extern/verse/dist/vs_node_text.c index b901a3a079c..ae7c3c737c3 100644 --- a/extern/verse/dist/vs_node_text.c +++ b/extern/verse/dist/vs_node_text.c @@ -67,7 +67,7 @@ void vs_t_destroy_node(VSNodeText *node) void vs_t_subscribe(VSNodeText *node) { unsigned int i; - verse_send_t_set_language(node->head.id, node->language); + verse_send_t_language_set(node->head.id, node->language); for(i = 0; i < node->buffer_count; i++) if(node->buffer[i].name[0] != 0) verse_send_t_buffer_create(node->head.id, i, node->buffer[i].name); @@ -81,7 +81,7 @@ void vs_t_unsubscribe(VSNodeText *node) vs_remove_subscriptor(node->buffer[i].subscribers); } -static void callback_send_t_set_language(void *user, VNodeID node_id, char *language) +static void callback_send_t_language_set(void *user, VNodeID node_id, char *language) { VSNodeText *node; unsigned int i, count; @@ -95,7 +95,7 @@ static void callback_send_t_set_language(void *user, VNodeID node_id, char *lang for(i = 0; i < count; i++) { vs_set_subscript_session(node->head.subscribers, i); - verse_send_t_set_language(node_id, language); + verse_send_t_language_set(node_id, language); } vs_reset_subscript_session(); @@ -263,7 +263,7 @@ static void callback_send_t_text_set(void *user, VNodeID node_id, VBufferID buff void vs_t_callback_init(void) { - verse_callback_set(verse_send_t_set_language, callback_send_t_set_language, NULL); + verse_callback_set(verse_send_t_language_set, callback_send_t_language_set, NULL); verse_callback_set(verse_send_t_buffer_create, callback_send_t_buffer_create, NULL); verse_callback_set(verse_send_t_buffer_destroy, callback_send_t_buffer_destroy, NULL); verse_callback_set(verse_send_t_buffer_subscribe, callback_send_t_buffer_subscribe, NULL); diff --git a/extern/verse/dist/vs_server.h b/extern/verse/dist/vs_server.h index 0a8716dc260..76e1b482eb9 100644 --- a/extern/verse/dist/vs_server.h +++ b/extern/verse/dist/vs_server.h @@ -52,3 +52,11 @@ extern void vs_t_callback_init(void); extern void vs_c_callback_init(void); extern void vs_a_callback_init(void); extern void init_callback_node_storage(void); + +extern void vs_master_set_enabled(boolean enabled); +extern void vs_master_set_address(const char *address); +extern const char * vs_master_get_address(void); +extern void vs_master_set_desc(const char *desc); +extern void vs_master_set_tags(const char *tags); +extern void vs_master_update(void); +extern void vs_master_handle_describe(const char *address, const char *message); |