diff options
| author | Joel de Vahl <joel@stalverk80.se> | 2009-01-11 12:10:30 +0000 |
|---|---|---|
| committer | Joel de Vahl <joel@stalverk80.se> | 2009-01-11 12:10:30 +0000 |
| commit | 2a7402dd6c78e5b0e41bae57bfdd8aec57545f0d (patch) | |
| tree | 846542258748f31953eadbe770fe3e6bbde191ac | |
| parent | 2aafe11723e8c30b0482bbefb4c1c9a25fba92b3 (diff) | |
| download | zcatch-2a7402dd6c78e5b0e41bae57bfdd8aec57545f0d.tar.gz zcatch-2a7402dd6c78e5b0e41bae57bfdd8aec57545f0d.zip | |
use dmg for osx deliver, build universal binary, fix backspace being entered as a character
| -rw-r--r-- | default.bam | 73 | ||||
| -rw-r--r-- | scripts/make_release.py | 15 | ||||
| -rw-r--r-- | src/engine/client/ec_snd.c | 11 | ||||
| -rw-r--r-- | src/game/client/components/menus.cpp | 2 | ||||
| -rw-r--r-- | src/game/editor/ed_editor.cpp | 2 |
5 files changed, 79 insertions, 24 deletions
diff --git a/default.bam b/default.bam index 746632b9..e7d26718 100644 --- a/default.bam +++ b/default.bam @@ -239,19 +239,62 @@ function build(settings) return all end +if platform == "macosx" and arch == "ia32" then + debug_settings_ppc = NewSettings() + debug_settings_ppc.config_name = "debug_ppc" + debug_settings_ppc.config_ext = "_ppc_d" + debug_settings_ppc.debug = 1 + debug_settings_ppc.cc.optimize = 0 + debug_settings_ppc.cc.flags:Add("-arch ppc") + debug_settings_ppc.link.flags:Add("-arch ppc") + + release_settings_ppc = NewSettings() + release_settings_ppc.config_name = "release_ppc" + release_settings_ppc.config_ext = "_ppc" + release_settings_ppc.debug = 0 + release_settings_ppc.cc.optimize = 1 + release_settings_ppc.cc.flags:Add("-arch ppc") + release_settings_ppc.link.flags:Add("-arch ppc") + + debug_settings_x86 = NewSettings() + debug_settings_x86.config_name = "debug_x86" + debug_settings_x86.config_ext = "_x86_d" + debug_settings_x86.debug = 1 + debug_settings_x86.cc.optimize = 0 + + release_settings_x86 = NewSettings() + release_settings_x86.config_name = "release_x86" + release_settings_x86.config_ext = "_x86" + release_settings_x86.debug = 0 + release_settings_x86.cc.optimize = 1 + + ppc_d = build(debug_settings_ppc) + x86_d = build(debug_settings_x86) + ppc_r = build(release_settings_ppc) + x86_r = build(release_settings_x86) + DefaultTarget("game_debug_x86") + PseudoTarget("release", ppc_r, x86_r) + PseudoTarget("debug", ppc_d, x86_d) + + PseudoTarget("server_release", "server_release_x86", "server_release_ppc") + PseudoTarget("server_debug", "server_debug_x86", "server_debug_ppc") + PseudoTarget("client_release", "client_release_x86", "client_release_ppc") + PseudoTarget("client_debug", "client_debug_x86", "client_debug_ppc") +else + debug_settings = NewSettings() + debug_settings.config_name = "debug" + debug_settings.config_ext = "_d" + debug_settings.debug = 1 + debug_settings.cc.optimize = 0 + + release_settings = NewSettings() + release_settings.config_name = "release" + release_settings.config_ext = "" + release_settings.debug = 0 + release_settings.cc.optimize = 1 + + build(debug_settings) + build(release_settings) + DefaultTarget("game_debug") +end -debug_settings = NewSettings() -debug_settings.config_name = "debug" -debug_settings.config_ext = "_d" -debug_settings.debug = 1 -debug_settings.cc.optimize = 0 - -release_settings = NewSettings() -release_settings.config_name = "release" -release_settings.config_ext = "" -release_settings.debug = 0 -release_settings.cc.optimize = 1 - -build(debug_settings) -build(release_settings) -DefaultTarget("game_debug") diff --git a/scripts/make_release.py b/scripts/make_release.py index e5501a1b..b1cc0fc0 100644 --- a/scripts/make_release.py +++ b/scripts/make_release.py @@ -13,6 +13,7 @@ platform = sys.argv[2] exe_ext = "" use_zip = 0 use_gz = 1 +use_dmg = 0 use_bundle = 0 include_data = True include_exe = True @@ -34,8 +35,8 @@ if platform == 'win32': exe_ext = ".exe" use_zip = 1 use_gz = 0 -if 'osx_' in platform: - use_zip = 1 +if platform == 'osx': + use_dmg = 1 use_gz = 0 use_bundle = 1 @@ -78,6 +79,8 @@ if include_src: shutil.copy("default.bam", package_dir) if use_bundle: + os.system("lipo -create -output teeworlds_srv teeworlds_srv_ppc teeworlds_srv_x86") + os.system("lipo -create -output teeworlds teeworlds_ppc teeworlds_x86") bundle_content_dir = os.path.join(package_dir, "Teeworlds.app/Contents") bundle_bin_dir = os.path.join(bundle_content_dir, "MacOS") bundle_resource_dir = os.path.join(bundle_content_dir, "Resources") @@ -92,7 +95,6 @@ if use_bundle: shutil.copy("other/icons/Teeworlds.icns", bundle_resource_dir) shutil.copy(name+exe_ext, bundle_bin_dir) shutil.copy(name+"_srv"+exe_ext, bundle_bin_dir) - print(bundle_framework_dir) os.system("cp -R /Library/Frameworks/SDL.framework " + bundle_framework_dir) file(os.path.join(bundle_content_dir, "Info.plist"), "w").write(""" <?xml version="1.0" encoding="UTF-8"?> @@ -132,5 +134,12 @@ if use_zip: if use_gz: print "making tar.gz archive" os.system("tar czf %s.tar.gz %s" % (package, package_dir)) + +if use_dmg: + print "making disk image" + os.system("rm -f %s.dmg %s_temp.dmg" % (package, package)) + os.system("hdiutil create -srcfolder %s -volname Teeworlds -quiet %s_temp" % (package_dir, package)) + os.system("hdiutil convert %s_temp.dmg -format UDBZ -o %s.dmg -quiet" % (package, package)) + os.system("rm -f %s_temp.dmg" % package) print "done" diff --git a/src/engine/client/ec_snd.c b/src/engine/client/ec_snd.c index a7219b65..ed66cc1f 100644 --- a/src/engine/client/ec_snd.c +++ b/src/engine/client/ec_snd.c @@ -36,7 +36,7 @@ typedef struct int pan; } CHANNEL; -typedef struct VOICE_t +typedef struct { SAMPLE *snd; CHANNEL *channel; @@ -59,6 +59,8 @@ static int center_y = 0; static int mixing_rate = 48000; static volatile int sound_volume = 100; +static int next_voice = 0; + void snd_set_channel(int cid, float vol, float pan) { channels[cid].vol = (int)(vol*255.0f); @@ -73,12 +75,13 @@ static int play(int cid, int sid, int flags, float x, float y) lock_wait(sound_lock); /* search for voice */ - /* TODO: fix this linear search */ for(i = 0; i < NUM_VOICES; i++) { - if(!voices[i].snd) + int id = (next_voice + i) % NUM_VOICES; + if(!voices[id].snd) { - vid = i; + vid = id; + next_voice = id+1; break; } } diff --git a/src/game/client/components/menus.cpp b/src/game/client/components/menus.cpp index 3122a3bd..29372b62 100644 --- a/src/game/client/components/menus.cpp +++ b/src/game/client/components/menus.cpp @@ -240,7 +240,7 @@ int MENUS::ui_do_edit_box(void *id, const RECT *rect, char *str, int str_size, f if (at_index > len) at_index = len; - if (!(c >= 0 && c < 32)) + if (!(c >= 0 && c < 32) && c != 127) { if (len < str_size - 1 && at_index < str_size - 1) { diff --git a/src/game/editor/ed_editor.cpp b/src/game/editor/ed_editor.cpp index 6908484b..bc02d2b4 100644 --- a/src/game/editor/ed_editor.cpp +++ b/src/game/editor/ed_editor.cpp @@ -217,7 +217,7 @@ int ui_do_edit_box(void *id, const RECT *rect, char *str, int str_size, float fo if (at_index > len) at_index = len; - if (!(c >= 0 && c < 32)) + if (!(c >= 0 && c < 32) && c != 127) { if (len < str_size - 1 && at_index < str_size - 1) { |