You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
(12) |
Nov
(23) |
Dec
(20) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(20) |
Feb
(2) |
Mar
(14) |
Apr
(15) |
May
(10) |
Jun
(39) |
Jul
(4) |
Aug
(2) |
Sep
(3) |
Oct
(3) |
Nov
(11) |
Dec
(17) |
2003 |
Jan
(174) |
Feb
(61) |
Mar
(27) |
Apr
(23) |
May
(56) |
Jun
(85) |
Jul
(52) |
Aug
(82) |
Sep
(31) |
Oct
(8) |
Nov
(3) |
Dec
(22) |
2004 |
Jan
(82) |
Feb
(78) |
Mar
(43) |
Apr
(20) |
May
(23) |
Jun
(15) |
Jul
(16) |
Aug
(3) |
Sep
(2) |
Oct
(1) |
Nov
(11) |
Dec
(7) |
2005 |
Jan
|
Feb
|
Mar
(1) |
Apr
(2) |
May
(4) |
Jun
(3) |
Jul
(1) |
Aug
(3) |
Sep
(7) |
Oct
(10) |
Nov
|
Dec
|
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(3) |
Sep
(1) |
Oct
(14) |
Nov
(6) |
Dec
(15) |
2007 |
Jan
(29) |
Feb
(1) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
(7) |
Dec
(12) |
2008 |
Jan
(14) |
Feb
(16) |
Mar
(7) |
Apr
(17) |
May
(10) |
Jun
(20) |
Jul
(6) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
(30) |
Apr
(29) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(7) |
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
(2) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
From: FutureBoyNil <4re...@co...> - 2016-07-23 04:05:56
|
hi, I think this story is really awesome, you're gonna love it, please read it here <http://next.machine-embroidery-network.com/lnpijdvc> Take care, FutureBoyNil |
From: <sph...@li...> - 2016-06-28 22:26:45
|
The results of your email command are provided below. Attached is your original message. - Results: Ignoring non-text/plain MIME parts - Unprocessed: What a wonderfull news from our best friend I've just read, you may read it yourself here <http://trafrusaci.uptown2downtownblog.com/lnknjnob> Rushing, sph...@li... - Done. |
From: <sph...@li...> - 2016-06-28 22:22:53
|
The results of your email command are provided below. Attached is your original message. - Results: Ignoring non-text/plain MIME parts - Unprocessed: What a wonderfull news from our best friend I've just read, you may read it yourself here <http://trafrusaci.uptown2downtownblog.com/lnknjnob> Rushing, sph...@li... - Done. |
From: <sph...@li...> - 2016-05-21 04:19:17
|
The results of your email command are provided below. Attached is your original message. - Results: Ignoring non-text/plain MIME parts - Unprocessed: sph...@li... - Done. |
From: <sph...@li...> - 2016-05-21 04:19:17
|
The results of your email command are provided below. Attached is your original message. - Results: Ignoring non-text/plain MIME parts - Unprocessed: sph...@li... - Done. |
Update of /cvsroot/sphere/sphere/source/engine/win32 In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2771/engine/win32 Modified Files: engine.rc win32_audio.cpp win32_audio.hpp win32_input.cpp win32_input.hpp win32_main.cpp win32_video.cpp Log Message: Optimized a few routines. Fixed GetPersonList() crash bug. GetTime() int-or-float (untested). GetMapMusic(). Index: win32_audio.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/win32/win32_audio.hpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** win32_audio.hpp 18 Jun 2008 18:58:17 -0000 1.10 --- win32_audio.hpp 8 Nov 2009 00:38:57 -0000 1.11 *************** *** 4,9 **** #include <audiere.h> ! audiere::OutputStream* SA_OpenSound(audiere::File* file, bool streaming); ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, audiere::SoundEffectType type); #if defined(WIN32) && defined(USE_MIDI) --- 4,33 ---- #include <audiere.h> ! /* ! // This function is now included in audiere, it may however be needed for unix or mac if audiere is not updated... ! #include "../../common/strcmp_ci.hpp" ! ! inline audiere::FileFormat GuessFormat(const char* filename) ! { ! if (filename == NULL) return audiere::FF_AUTODETECT; ! if (strcmp_ci(filename + strlen(filename) - 4, ".ogg") == 0) return audiere::FF_OGG; ! if (strcmp_ci(filename + strlen(filename) - 4, ".mp3") == 0 || ! strcmp_ci(filename + strlen(filename) - 4, ".mp2") == 0) return audiere::FF_MP3; ! if (strcmp_ci(filename + strlen(filename) - 3, ".it") == 0 || ! strcmp_ci(filename + strlen(filename) - 3, ".xm") == 0 || ! strcmp_ci(filename + strlen(filename) - 4, ".mod") == 0 || ! strcmp_ci(filename + strlen(filename) - 4, ".s3m") == 0) return audiere::FF_MOD; ! if (strcmp_ci(filename + strlen(filename) - 4, ".wav") == 0) return audiere::FF_WAV; ! if (strcmp_ci(filename + strlen(filename) - 4, ".spx") == 0) return audiere::FF_SPEEX; ! if (strcmp_ci(filename + strlen(filename) - 5, ".aiff") == 0 || ! strcmp_ci(filename + strlen(filename) - 5, ".aifc") == 0) return audiere::FF_AIFF; ! if (strcmp_ci(filename + strlen(filename) - 5, ".flac") == 0) return audiere::FF_FLAC; ! return audiere::FF_AUTODETECT; ! } ! ! */ ! ! audiere::OutputStream* SA_OpenSound(audiere::File* file, const char* filename, bool streaming); ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, const char* filename, audiere::SoundEffectType type); #if defined(WIN32) && defined(USE_MIDI) Index: win32_main.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/win32/win32_main.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** win32_main.cpp 28 Mar 2009 18:47:36 -0000 1.25 --- win32_main.cpp 8 Nov 2009 00:38:57 -0000 1.26 *************** *** 491,495 **** MSG msg; int count = 0; ! while (count++ < 8 && PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { DispatchMessage(&msg); --- 491,495 ---- MSG msg; int count = 0; ! while (count++ < 4 && PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { DispatchMessage(&msg); Index: engine.rc =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/win32/engine.rc,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** engine.rc 18 Mar 2009 22:57:41 -0000 1.12 --- engine.rc 8 Nov 2009 00:38:57 -0000 1.13 *************** *** 106,110 **** VALUE "ProductName", "Sphere Engine\0" VALUE "ProductVersion", "1, 6, 0, 0\0" ! VALUE "SpecialBuild", "Beta\0" END END --- 106,110 ---- VALUE "ProductName", "Sphere Engine\0" VALUE "ProductVersion", "1, 6, 0, 0\0" ! VALUE "SpecialBuild", "Beta 4\0" END END Index: win32_audio.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/win32/win32_audio.cpp,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** win32_audio.cpp 18 Mar 2009 22:46:11 -0000 1.17 --- win32_audio.cpp 8 Nov 2009 00:38:57 -0000 1.18 *************** *** 10,13 **** --- 10,15 ---- #include "win32_internal.hpp" #include "win32_sphere_config.hpp" + #include <audiere.h> + static audiere::AudioDevicePtr s_AudioDevice = NULL; *************** *** 74,77 **** --- 76,81 ---- //////////////////////////////////////////////////////////////////////////////// + + audiere::AudioDevice* SA_GetAudioDevice() { *************** *** 80,92 **** //////////////////////////////////////////////////////////////////////////////// ! audiere::OutputStream* SA_OpenSound(audiere::File* file, bool streaming) { ! return audiere::OpenSound(s_AudioDevice.get(), file, streaming); } //////////////////////////////////////////////////////////////////////////////// ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, audiere::SoundEffectType type) { ! return audiere::OpenSoundEffect(s_AudioDevice.get(), file, type); } --- 84,96 ---- //////////////////////////////////////////////////////////////////////////////// ! audiere::OutputStream* SA_OpenSound(audiere::File* file, const char* filename, bool streaming) { ! return audiere::OpenSound(s_AudioDevice.get(), file, streaming, audiere::GuessFormat(filename)); } //////////////////////////////////////////////////////////////////////////////// ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, const char* filename, audiere::SoundEffectType type) { ! return audiere::OpenSoundEffect(s_AudioDevice.get(), file, type, audiere::GuessFormat(filename)); } *************** *** 102,103 **** --- 106,108 ---- //////////////////////////////////////////////////////////////////////////////// + Index: win32_input.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/win32/win32_input.hpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** win32_input.hpp 25 Jun 2008 19:03:48 -0000 1.9 --- win32_input.hpp 8 Nov 2009 00:38:57 -0000 1.10 *************** *** 1,129 **** #ifndef WIN32_INPUT_HPP #define WIN32_INPUT_HPP - #include "../../common/types.h" - - #define MAX_KEY 256 ! // key defines ! #define KEY_ESCAPE 1 ! #define KEY_F1 2 ! #define KEY_F2 3 ! #define KEY_F3 4 ! #define KEY_F4 5 ! #define KEY_F5 6 ! #define KEY_F6 7 ! #define KEY_F7 8 ! #define KEY_F8 9 ! #define KEY_F9 10 ! #define KEY_F10 11 ! #define KEY_F11 12 ! #define KEY_F12 13 ! #define KEY_TILDE 14 ! #define KEY_0 15 ! #define KEY_1 16 ! #define KEY_2 17 ! #define KEY_3 18 ! #define KEY_4 19 ! #define KEY_5 20 ! #define KEY_6 21 ! #define KEY_7 22 ! #define KEY_8 23 ! #define KEY_9 24 ! #define KEY_MINUS 25 ! #define KEY_EQUALS 26 ! #define KEY_BACKSPACE 27 ! #define KEY_TAB 28 ! #define KEY_A 29 ! #define KEY_B 30 ! #define KEY_C 31 ! #define KEY_D 32 ! #define KEY_E 33 ! #define KEY_F 34 ! #define KEY_G 35 ! #define KEY_H 36 ! #define KEY_I 37 ! #define KEY_J 38 ! #define KEY_K 39 ! #define KEY_L 40 ! #define KEY_M 41 ! #define KEY_N 42 ! #define KEY_O 43 ! #define KEY_P 44 ! #define KEY_Q 45 ! #define KEY_R 46 ! #define KEY_S 47 ! #define KEY_T 48 ! #define KEY_U 49 ! #define KEY_V 50 ! #define KEY_W 51 ! #define KEY_X 52 ! #define KEY_Y 53 ! #define KEY_Z 54 ! #define KEY_SHIFT 55 ! #define KEY_CAPSLOCK 56 ! #define KEY_NUMLOCK 57 ! #define KEY_SCROLLOCK 58 ! #define KEY_CTRL 59 ! #define KEY_ALT 60 ! #define KEY_SPACE 61 ! #define KEY_OPENBRACE 62 ! #define KEY_CLOSEBRACE 63 ! #define KEY_SEMICOLON 64 ! #define KEY_APOSTROPHE 65 ! #define KEY_COMMA 66 ! #define KEY_PERIOD 67 ! #define KEY_SLASH 68 ! #define KEY_BACKSLASH 69 ! #define KEY_ENTER 70 ! #define KEY_INSERT 71 ! #define KEY_DELETE 72 ! #define KEY_HOME 73 ! #define KEY_END 74 ! #define KEY_PAGEUP 75 ! #define KEY_PAGEDOWN 76 ! #define KEY_UP 77 ! #define KEY_RIGHT 78 ! #define KEY_DOWN 79 ! #define KEY_LEFT 80 ! #define KEY_NUM_0 81 ! #define KEY_NUM_1 82 ! #define KEY_NUM_2 83 ! #define KEY_NUM_3 84 ! #define KEY_NUM_4 85 ! #define KEY_NUM_5 86 ! #define KEY_NUM_6 87 ! #define KEY_NUM_7 88 ! #define KEY_NUM_8 89 ! #define KEY_NUM_9 90 ! ! #define MODKEY_NONE 0 ! #define MODKEY_CAPSLOCK 1 ! #define MODKEY_NUMLOCK 2 ! #define MODKEY_SCROLLOCK 3 ! ! #define MOUSE_LEFT 0 ! #define MOUSE_MIDDLE 1 ! #define MOUSE_RIGHT 2 ! #define MOUSE_WHEEL_UP 3 ! #define MOUSE_WHEEL_DOWN 4 ! ! #define JOYSTICK_AXIS_X 0 ! #define JOYSTICK_AXIS_Y 1 ! #define JOYSTICK_AXIS_Z 2 ! #define JOYSTICK_AXIS_R 3 - #define PLAYER_1 0 - #define PLAYER_2 1 - #define PLAYER_3 2 - #define PLAYER_4 3 - #define PLAYER_KEY_MENU 4 - #define PLAYER_KEY_UP 5 - #define PLAYER_KEY_DOWN 6 - #define PLAYER_KEY_LEFT 7 - #define PLAYER_KEY_RIGHT 8 - #define PLAYER_KEY_A 9 - #define PLAYER_KEY_B 10 - #define PLAYER_KEY_X 11 - #define PLAYER_KEY_Y 12 // general --- 1,8 ---- #ifndef WIN32_INPUT_HPP #define WIN32_INPUT_HPP ! #include "../../common/types.h" ! #include "../../common/input_constants.h" // general Index: win32_input.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/win32/win32_input.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** win32_input.cpp 26 Feb 2009 00:10:54 -0000 1.14 --- win32_input.cpp 8 Nov 2009 00:38:57 -0000 1.15 *************** *** 137,144 **** UINT minR; UINT maxR; UINT numAxes; UINT numButtons; ! float axes[4]; UINT buttons; }; --- 137,148 ---- UINT minR; UINT maxR; + UINT minU; + UINT maxU; + UINT minV; + UINT maxV; UINT numAxes; UINT numButtons; ! float axes[JOYSTICK_MAX_AXIS+1]; UINT buttons; }; *************** *** 154,158 **** JOYINFOEX jinfo_ex; jinfo_ex.dwSize = sizeof(jinfo_ex); ! jinfo_ex.dwFlags = JOY_RETURNBUTTONS | JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR; if (joyGetPosEx(id, &jinfo_ex) != JOYERR_NOERROR) --- 158,162 ---- JOYINFOEX jinfo_ex; jinfo_ex.dwSize = sizeof(jinfo_ex); ! jinfo_ex.dwFlags = JOY_RETURNBUTTONS | JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR | JOY_RETURNU | JOY_RETURNV; if (joyGetPosEx(id, &jinfo_ex) != JOYERR_NOERROR) *************** *** 178,185 **** --- 182,195 ---- j.minR = jcaps.wRmin; j.maxR = jcaps.wRmax; + j.minU = jcaps.wUmin; + j.maxU = jcaps.wUmax; + j.minV = jcaps.wVmin; + j.maxV = jcaps.wVmax; j.axes[0] = 0; j.axes[1] = 0; j.axes[2] = 0; j.axes[3] = 0; + j.axes[4] = 0; + j.axes[5] = 0; j.buttons = 0; j.numButtons = jcaps.wNumButtons; *************** *** 298,302 **** JOYINFOEX jinfo_ex; jinfo_ex.dwSize = sizeof(jinfo_ex); ! jinfo_ex.dwFlags = JOY_RETURNBUTTONS | JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR; if (joyGetPosEx(j.id, &jinfo_ex) == JOYERR_NOERROR) --- 308,312 ---- JOYINFOEX jinfo_ex; jinfo_ex.dwSize = sizeof(jinfo_ex); ! jinfo_ex.dwFlags = JOY_RETURNBUTTONS | JOY_RETURNX | JOY_RETURNY | JOY_RETURNZ | JOY_RETURNR |JOY_RETURNU | JOY_RETURNV; if (joyGetPosEx(j.id, &jinfo_ex) == JOYERR_NOERROR) *************** *** 306,309 **** --- 316,321 ---- j.axes[JOYSTICK_AXIS_Z] = float(jinfo_ex.dwZpos - j.minZ) / (j.maxZ - j.minZ) * 2 - 1; j.axes[JOYSTICK_AXIS_R] = float(jinfo_ex.dwRpos - j.minR) / (j.maxR - j.minR) * 2 - 1; + j.axes[JOYSTICK_AXIS_U] = float(jinfo_ex.dwUpos - j.minU) / (j.maxU - j.minU) * 2 - 1; + j.axes[JOYSTICK_AXIS_V] = float(jinfo_ex.dwVpos - j.minV) / (j.maxV - j.minV) * 2 - 1; j.buttons = jinfo_ex.dwButtons; } *************** *** 421,432 **** float GetJoystickAxis(int joy, int axis) { ! if (joy >= 0 && joy < GetNumJoysticks() && axis >= 0 && axis < 4) ! { ! return Joysticks[joy].axes[axis]; ! } ! else ! { return 0; ! } } --- 433,439 ---- float GetJoystickAxis(int joy, int axis) { ! if (joy < 0 || joy >= GetNumJoysticks() || axis < 0 || axis > JOYSTICK_MAX_AXIS) return 0; ! return Joysticks[joy].axes[axis]; } Index: win32_video.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/win32/win32_video.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** win32_video.cpp 3 Apr 2009 23:28:40 -0000 1.24 --- win32_video.cpp 8 Nov 2009 00:38:57 -0000 1.25 *************** *** 13,17 **** // this function should not be exposed ! static void (__stdcall * _FlipScreen)(); void (__stdcall * SetClippingRectangle)(int x, int y, int w, int h); --- 13,17 ---- // this function should not be exposed ! static void (__fastcall * _FlipScreen)(); void (__stdcall * SetClippingRectangle)(int x, int y, int w, int h); *************** *** 279,283 **** //////////////////////////////////////////////////////////////////////////////// ! int GetScreenWidth() { return ScreenWidth; --- 279,283 ---- //////////////////////////////////////////////////////////////////////////////// ! inline int GetScreenWidth() { return ScreenWidth; *************** *** 285,289 **** //////////////////////////////////////////////////////////////////////////////// ! int GetScreenHeight() { return ScreenHeight; --- 285,289 ---- //////////////////////////////////////////////////////////////////////////////// ! inline int GetScreenHeight() { return ScreenHeight; *************** *** 291,295 **** //////////////////////////////////////////////////////////////////////////////// ! void FlipScreen() { static bool FirstCall = true; --- 291,295 ---- //////////////////////////////////////////////////////////////////////////////// ! inline void FlipScreen() { static bool FirstCall = true; |
From: FutureBoyNil <fut...@us...> - 2009-11-08 00:39:12
|
Update of /cvsroot/sphere/sphere/source/engine In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2771/engine Modified Files: engine.cpp map_engine.cpp map_engine.hpp parameters.cpp parameters.hpp script.cpp script.hpp sfxr.cpp smap.cpp sphere.cpp ss_functions.table Log Message: Optimized a few routines. Fixed GetPersonList() crash bug. GetTime() int-or-float (untested). GetMapMusic(). Index: sfxr.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/sfxr.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** sfxr.cpp 3 Mar 2009 04:21:50 -0000 1.2 --- sfxr.cpp 8 Nov 2009 00:38:57 -0000 1.3 *************** *** 540,544 **** memoryfile = audiere::CreateMemoryFile(buffer, bytearraylength); //audiere::SoundEffect* sound = SA_OpenSoundEffect(adrfile.get(), type, memoryfile); ! audiere::SoundEffect* sound = SA_OpenSoundEffect(memoryfile, type); //DEBUG --- 540,544 ---- memoryfile = audiere::CreateMemoryFile(buffer, bytearraylength); //audiere::SoundEffect* sound = SA_OpenSoundEffect(adrfile.get(), type, memoryfile); ! audiere::SoundEffect* sound = SA_OpenSoundEffect(memoryfile, NULL, type); //DEBUG Index: engine.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/engine.cpp,v retrieving revision 1.50 retrieving revision 1.51 diff -C2 -d -r1.50 -r1.51 *** engine.cpp 26 Feb 2009 00:10:53 -0000 1.50 --- engine.cpp 8 Nov 2009 00:38:57 -0000 1.51 *************** *** 855,859 **** audiere::FilePtr adrfile(new AudiereFile(file)); ! return SA_OpenSound(adrfile.get(), streaming); } --- 855,859 ---- audiere::FilePtr adrfile(new AudiereFile(file)); ! return SA_OpenSound(adrfile.get(),filename, streaming); } *************** *** 872,876 **** audiere::FilePtr adrfile(new AudiereFile(file)); ! return SA_OpenSoundEffect(adrfile.get(), type); } --- 872,876 ---- audiere::FilePtr adrfile(new AudiereFile(file)); ! return SA_OpenSoundEffect(adrfile.get(), filename, type); } *************** *** 909,913 **** //audiere::FilePtr adrfile(memoryfile); //return SA_OpenSound(adrfile.get(), streaming); ! return SA_OpenSound(memoryfile, streaming); } --- 909,913 ---- //audiere::FilePtr adrfile(memoryfile); //return SA_OpenSound(adrfile.get(), streaming); ! return SA_OpenSound(memoryfile, NULL, streaming); } *************** *** 916,920 **** CGameEngine::CreateSoundEffect(audiere::File * memoryfile, audiere::SoundEffectType type) { ! return SA_OpenSoundEffect(memoryfile, type); } --- 916,920 ---- CGameEngine::CreateSoundEffect(audiere::File * memoryfile, audiere::SoundEffectType type) { ! return SA_OpenSoundEffect(memoryfile, NULL, type); } Index: ss_functions.table =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/ss_functions.table,v retrieving revision 1.97 retrieving revision 1.98 diff -C2 -d -r1.97 -r1.98 *** ss_functions.table 7 Apr 2009 22:46:07 -0000 1.97 --- ss_functions.table 8 Nov 2009 00:38:57 -0000 1.98 *************** *** 338,359 **** // Background (Map) Music ! SS_FUNCTION(BgmName, 0) ! SS_FUNCTION(BgmValid, 0) ! SS_FUNCTION(BgmPlay, 0) ! SS_FUNCTION(BgmStop, 0) ! SS_FUNCTION(BgmIsPlaying, 0) ! SS_FUNCTION(BgmReset, 0) ! SS_FUNCTION(BgmSetRepeat, 1) ! SS_FUNCTION(BgmGetRepeat, 0) ! SS_FUNCTION(BgmSetVolume, 1) ! SS_FUNCTION(BgmGetVolume, 0) ! SS_FUNCTION(BgmSetPan, 1) ! SS_FUNCTION(BgmGetPan, 0) ! SS_FUNCTION(BgmSetPitch, 1) ! SS_FUNCTION(BgmGetPitch, 0) ! SS_FUNCTION(BgmIsSeekable, 0) ! SS_FUNCTION(BgmGetLength, 0) ! SS_FUNCTION(BgmSetPosition, 1) ! SS_FUNCTION(BgmGetPosition, 0) --- 338,344 ---- // Background (Map) Music ! SS_FUNCTION(GetMapMusicName, 0) ! SS_FUNCTION(GetMapMusicType, 0) ! SS_FUNCTION(GetMapMusic, 0) *************** *** 520,523 **** --- 505,509 ---- //file.getNumKeys(section) //file.getKey(section, index) + //file.RemoveKey(section, index) // raw files Index: smap.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/smap.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** smap.cpp 3 Apr 2009 23:28:40 -0000 1.33 --- smap.cpp 8 Nov 2009 00:38:57 -0000 1.34 *************** *** 140,152 **** SMAP::UpdateMap() { ! unsigned int i; // update layer times for autoscrolling ! for (i = 0; i < m_LayerInfo.size(); i++) ! m_LayerInfo[i].time++; // update animations sTileset& tileset = m_Map.GetTileset(); ! for (i = 0; i < (unsigned int)tileset.GetNumTiles(); i++) { sTile& tile = tileset.GetTile(i); --- 140,155 ---- SMAP::UpdateMap() { ! int i; // update layer times for autoscrolling ! for (i = m_LayerInfo.size() -1; i >= 0; --i) ! m_LayerInfo[i].time++; ! ! // update animations sTileset& tileset = m_Map.GetTileset(); ! for (i = tileset.GetNumTiles() -1; i>=0; --i) ! //for (i = 0; i < (unsigned int)tileset.GetNumTiles(); i++) { sTile& tile = tileset.GetTile(i); Index: parameters.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/parameters.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** parameters.cpp 7 Apr 2009 22:46:07 -0000 1.7 --- parameters.cpp 8 Nov 2009 00:38:57 -0000 1.8 *************** *** 10,35 **** */ - /////////////////////////////////////////////////////////// - /* - * real numbers will be converted (rounded) automatically to the nearest integer, and so are strings - * and objects. Objects need the method .valueOf() to be converted to number. - */ - int argInt(JSContext* cx, jsval arg) - { - int32 i; - if (JS_ValueToECMAInt32(cx, arg, &i)) //used to be JS_ValueToInt32, which rounded differently. - return i; - - JS_ReportError(cx, "Invalid integer."); - return 0; // invalid integer - } /////////////////////////////////////////////////////////// /* ! * This will fail unless its an integer, 1.2 is not accepted as valid input */ int argStrictInt(JSContext* cx, jsval arg) { - int32 i; if (!JSVAL_IS_INT(arg)) { --- 10,21 ---- */ /////////////////////////////////////////////////////////// /* ! * This will fail unless its an integer, 1.2 is not accepted as valid input\ ! * You probably want to use argInt() instead */ int argStrictInt(JSContext* cx, jsval arg) { if (!JSVAL_IS_INT(arg)) { *************** *** 37,40 **** --- 23,27 ---- return false; } + int32 i; if (JS_ValueToECMAInt32(cx, arg, &i)) return i; *************** *** 46,49 **** --- 33,42 ---- const char* argStr(JSContext* cx, jsval arg) { + /* + // This may speed up things, but I've not tested it for stability + const char* s = JS_GetStringBytes(JSVAL_TO_STRING(arg)); + return (s ? s : ""); + */ + JSString* str = JS_ValueToString(cx, arg); *************** *** 64,68 **** bool argBool(JSContext* cx, jsval arg) { ! JSBool b; if (JSVAL_IS_OBJECT(arg)) { --- 57,66 ---- bool argBool(JSContext* cx, jsval arg) { ! // Quickly return the boolean value ! if (JSVAL_IS_BOOLEAN(arg)) ! return JSVAL_TO_BOOLEAN(arg) == JS_TRUE; ! ! // Not a boolean, convert it to boolean ! JSBool b; if (JSVAL_IS_OBJECT(arg)) { Index: map_engine.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/map_engine.cpp,v retrieving revision 1.196 retrieving revision 1.197 diff -C2 -d -r1.196 -r1.197 *** map_engine.cpp 7 Apr 2009 22:46:07 -0000 1.196 --- map_engine.cpp 8 Nov 2009 00:38:57 -0000 1.197 *************** *** 1726,1730 **** p.key_right = config->key_right; p.key_a = config->key_a; ! p.key_a = config->key_a; p.key_x = config->key_x; p.key_y = config->key_y; --- 1726,1730 ---- p.key_right = config->key_right; p.key_a = config->key_a; ! p.key_b = config->key_b; // key_b? p.key_x = config->key_x; p.key_y = config->key_y; *************** *** 2038,2044 **** bool ! CMapEngine::GetPersonList(std::vector<std::string>& list) { list.resize(m_Persons.size()); unsigned int j = 0; --- 2038,2047 ---- bool ! CMapEngine::GetPersonList(std::vector<std::string>& list, int& size) { list.resize(m_Persons.size()); + if (list.size() !=m_Persons.size()) + return false; //whoops! couldnt resize + size = list.size(); unsigned int j = 0; *************** *** 2047,2056 **** if ( !m_Persons[i].name.empty() ) { ! list[j] = m_Persons[i].name; ! j++; } } ! list.resize(j); return true; } --- 2050,2059 ---- if ( !m_Persons[i].name.empty() ) { ! list[j] = m_Persons[i].name; ! j++; } } ! if( j < m_Persons.size() ) list.resize(j); return true; } *************** *** 4565,4569 **** } // end for all layers ! // QUESTION: Why does blue != 255? //if (!(m_CurrentColorMask.red == 255 && m_CurrentColorMask.green == 255 && m_CurrentColorMask.blue == 255 && m_CurrentColorMask.alpha == 255)) if ( (m_CurrentColorMask.red-255)|(m_CurrentColorMask.green-255)|(m_CurrentColorMask.blue-255)|(m_CurrentColorMask.alpha-255) ) --- 4568,4572 ---- } // end for all layers ! //if (!(m_CurrentColorMask.red == 255 && m_CurrentColorMask.green == 255 && m_CurrentColorMask.blue == 255 && m_CurrentColorMask.alpha == 255)) if ( (m_CurrentColorMask.red-255)|(m_CurrentColorMask.green-255)|(m_CurrentColorMask.blue-255)|(m_CurrentColorMask.alpha-255) ) *************** *** 4731,4735 **** // for each person... ! for (int i = int(m_Persons.size())-1 ; i>=0 ; --i) { bool activated; --- 4734,4739 ---- // for each person... ! // for (int i = int(m_Persons.size())-1 ; i>=0 ; --i) // Sometimes, it starts at i=12, then suddenly .size()==2 and its out of range! ! for (int i = 0; i < int(m_Persons.size()) ; ++i) { bool activated; *************** *** 5401,5405 **** Person& p = m_Persons[person_index]; ! return IsPointWithinZone(p.x, p.y, p.layer, zone_index); } --- 5405,5409 ---- Person& p = m_Persons[person_index]; ! return IsPointWithinZone((int)p.x, (int)p.y, p.layer, zone_index); } *************** *** 5525,5528 **** --- 5529,5534 ---- CMapEngine::UpdateDelayScripts() { + if(m_DelayScripts.size() == 0) + return true; // update delay scripts for (unsigned int i = 0; i < m_DelayScripts.size(); ++i) *************** *** 6291,6295 **** bool ! CMapEngine::BgmName(std::string& result) { result = m_LastMusicPath; --- 6297,6301 ---- bool ! CMapEngine::GetMapMusicName(std::string& result) { result = m_LastMusicPath; *************** *** 6298,6302 **** int ! CMapEngine::BgmValid() { if (m_Music) --- 6304,6308 ---- int ! CMapEngine::GetMapMusicType() { if (m_Music) *************** *** 6314,6523 **** } - void - CMapEngine::BgmPlay() - { - if (m_Music) - { - m_Music->play(); - } - - #if defined(WIN32) && defined(USE_MIDI) - if (m_Midi) - { - m_Midi->play(); - } - #endif - } - - void - CMapEngine::BgmStop() - { - if (m_Music) - { - m_Music->stop(); - } - - #if defined(WIN32) && defined(USE_MIDI) - if (m_Midi) - { - m_Midi->stop(); - } - #endif - } - - bool - CMapEngine::BgmIsPlaying() - { - if (m_Music) - { - return m_Music->isPlaying(); - } - - #if defined(WIN32) && defined(USE_MIDI) - if (m_Midi) - { - return m_Midi->isPlaying(); - } - #endif - return false; - } - - void - CMapEngine::BgmReset() - { - if (m_Music) - { - m_Music->reset(); - } - } - - void - CMapEngine::BgmSetRepeat(bool repeat) - { - if (m_Music) - { - m_Music->setRepeat(repeat); - } - - #if defined(WIN32) && defined(USE_MIDI) - if (m_Midi) - { - m_Midi->setRepeat(repeat); - } - #endif - } - - bool - CMapEngine::BgmGetRepeat() - { - if (m_Music) - { - return m_Music->getRepeat(); - } - - #if defined(WIN32) && defined(USE_MIDI) - if (m_Midi) - { - return m_Midi->getRepeat(); - } - #endif - return false; - } - - void - CMapEngine::BgmSetVolume(float volume) - { - if (m_Music) - { - return m_Music->setVolume(volume); - } - } - - float - CMapEngine::BgmGetVolume() - { - if (m_Music) - { - return m_Music->getVolume(); - } - return -1; - } - - void - CMapEngine::BgmSetPan(float pan) - { - if (m_Music) - { - return m_Music->setPan(pan); - } - } - - float - CMapEngine::BgmGetPan() - { - if (m_Music) - { - return m_Music->getPan(); - } - return 0; - } - - void - CMapEngine::BgmSetPitchShift(float shift) - { - if (m_Music) - { - return m_Music->setPitchShift(shift); - } - } - - float - CMapEngine::BgmGetPitchShift() - { - if (m_Music) - { - return m_Music->getPitchShift(); - } - return 0; - } - - bool - CMapEngine::BgmIsSeekable() - { - if (m_Music) - { - return m_Music->isSeekable(); - } - return false; - } - - int - CMapEngine::BgmGetLength() - { - if (m_Music) - { - return m_Music->getLength(); - } - - #if defined(WIN32) && defined(USE_MIDI) - if (m_Midi) - { - return m_Midi->getLength(); - } - #endif - return false; - } - - - void - CMapEngine::BgmSetPosition(int position) - { - if (m_Music) - { - return m_Music->setPosition(position); - } - - #if defined(WIN32) && defined(USE_MIDI) - if (m_Midi) - { - return m_Midi->setPosition(position); - } - #endif - } - - int - CMapEngine::BgmGetPosition() - { - if (m_Music) - { - return m_Music->getPosition(); - } - - #if defined(WIN32) && defined(USE_MIDI) - if (m_Midi) - { - return m_Midi->getPosition(); - } - #endif - return 0; - } --- 6320,6321 ---- Index: script.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/script.hpp,v retrieving revision 1.66 retrieving revision 1.67 diff -C2 -d -r1.66 -r1.67 *** script.hpp 7 Apr 2009 22:46:08 -0000 1.66 --- script.hpp 8 Nov 2009 00:38:57 -0000 1.67 *************** *** 453,456 **** --- 453,457 ---- declare_method(ssFileGetNumKeys); declare_method(ssFileGetKey); + declare_method(ssFileRemoveKey); // raw files Index: script.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/script.cpp,v retrieving revision 1.230 retrieving revision 1.231 diff -C2 -d -r1.230 -r1.231 *** script.cpp 20 Apr 2009 06:33:29 -0000 1.230 --- script.cpp 8 Nov 2009 00:38:57 -0000 1.231 *************** *** 436,440 **** { // create runtime ! m_Runtime = JS_NewRuntime(1024 * 1024); if (m_Runtime == NULL) { --- 436,440 ---- { // create runtime ! m_Runtime = JS_NewRuntime(5 *1024 * 1024); if (m_Runtime == NULL) { *************** *** 474,478 **** JS_InitStandardClasses(m_Context, m_Global); JS_SetErrorReporter(m_Context, ErrorReporter); ! #ifndef TRACEMOKEY JS_SetBranchCallback(m_Context, BranchCallback); #else --- 474,478 ---- JS_InitStandardClasses(m_Context, m_Global); JS_SetErrorReporter(m_Context, ErrorReporter); ! #ifndef TRACEMONKEY JS_SetBranchCallback(m_Context, BranchCallback); #else *************** *** 781,784 **** --- 781,787 ---- KEY_CONSTANT(JOYSTICK_AXIS_Z) KEY_CONSTANT(JOYSTICK_AXIS_R) + KEY_CONSTANT(JOYSTICK_AXIS_U) + KEY_CONSTANT(JOYSTICK_AXIS_V) + KEY_CONSTANT(JOYSTICK_MAX_AXIS) KEY_CONSTANT(PLAYER_1) *************** *** 905,909 **** { // handle garbage collection ! if (This->m_GCEnabled && This->m_GCCount++ >= 60*60*8) { // handle system events --- 908,912 ---- { // handle garbage collection ! if (This->m_GCCount++ >= 60*60*16 && This->m_GCEnabled) { // handle system events *************** *** 1687,1690 **** --- 1690,1694 ---- #define return_double(expr) *rval = DOUBLE_TO_JSVAL(JS_NewDouble(cx, expr)) #define return_jsval(expr) *rval = expr + #define return_intOrDouble(expr) *rval = INT_FITS_IN_JSVAL(expr)? INT_TO_JSVAL(expr) : DOUBLE_TO_JSVAL(JS_NewDouble(cx, expr)) // Sphere function implementations *************** *** 1989,1992 **** --- 1993,2000 ---- int array_size = games.size(); jsval* array = new jsval[array_size]; + if (!array) + { + return JS_FALSE; + } *rval = *array; // temporally root it to the return value... *************** *** 2620,2627 **** int offsetBx = 0; int offsetBy = 0; ! if (argc > 2) offsetAx = argInt(cx, argv[2]); ! if (argc > 3) offsetAy = argInt(cx, argv[3]); ! if (argc > 4) offsetBx = argInt(cx, argv[4]); ! if (argc > 5) offsetBy = argInt(cx, argv[5]); jsval v; --- 2628,2647 ---- int offsetBx = 0; int offsetBy = 0; ! if (argc > 2) ! { ! offsetAx = argInt(cx, argv[2]); ! } ! if (argc > 3) ! { ! offsetAy = argInt(cx, argv[3]); ! } ! if (argc > 4) ! { ! offsetBx = argInt(cx, argv[4]); ! } ! if (argc > 5) ! { ! offsetBy = argInt(cx, argv[5]); ! } jsval v; *************** *** 2684,2688 **** // Code from: http://www.visibone.com/inpoly/inpoly.c.txt ! int isinside = 0; int inside = 0; int xold = 0; --- 2704,2708 ---- // Code from: http://www.visibone.com/inpoly/inpoly.c.txt ! signed int isinside = 0; int inside = 0; int xold = 0; *************** *** 2760,2764 **** if (inside){ ! isinside = -iB-1; break; } --- 2780,2784 ---- if (inside){ ! isinside = -1 - iB; break; } *************** *** 3379,3383 **** */ begin_func(GetTime, 0) ! return_int(GetTime()); end_func() --- 3399,3404 ---- */ begin_func(GetTime, 0) ! //return_int(GetTime()); // TODO: TEST intOrDouble ! return_intOrDouble(GetTime()); end_func() *************** *** 5045,5075 **** // ask the map engine for the list of names std::vector<std::string> names; ! if (!This->m_Engine->GetMapEngine()->GetPersonList(names)) { This->ReportMapEngineError("GetPersonList() failed"); return JS_FALSE; } ! // create an array of JS strings with which to initialize the array ! jsval* valarray = new jsval[names.size()]; ! *rval = *valarray; // root this js array, as it can be garbagecollected... ! ! for (unsigned int i = 0; i < names.size(); i++) { ! valarray[i] = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, names[i].c_str())); } ! // create the array object ! JSObject* array = JS_NewArrayObject(cx, names.size(), valarray); ! if (array == NULL) ! { ! JS_ReportError(cx, "Fatal Error! JS_NewArrayObject() failed!"); ! delete[] valarray; ! return JS_FALSE; } ! // delete our temporary jsval array and return the JS array ! return_object(array); // valarray now automatically unrooted. ! delete[] valarray; end_func() --- 5066,5104 ---- // ask the map engine for the list of names std::vector<std::string> names; ! int size; ! if (!This->m_Engine->GetMapEngine()->GetPersonList(names,size)) { This->ReportMapEngineError("GetPersonList() failed"); return JS_FALSE; } + //JS_GC(cx); ! JSObject *arg_array = JS_NewArrayObject(cx, names.size(), NULL); ! if (arg_array == NULL || !JS_AddRoot(cx, &arg_array)) { ! JS_ReportError(cx, "GetPersonList() failed object"); ! return JS_FALSE; } ! for(unsigned int i=0; i<names.size(); i++) { ! JSString *jStr = JS_NewStringCopyZ(cx, names[i].c_str()); ! *rval = STRING_TO_JSVAL(jStr); ! //JS_GC(cx); ! jsval aname = STRING_TO_JSVAL(jStr); ! *rval = aname; ! //JS_GC(cx); ! JS_SetElement(cx, arg_array, (jsint)i, &aname); ! //JS_GC(cx); ! /* ! jsval j = STRING_TO_JSVAL(JS_NewStringCopyZ( cx, names[i].c_str() )); ! *rval = j; ! JS_GC(cx); ! JS_SetElement(cx, result, (jsint)i, &j ); ! JS_GC(cx); ! */ } ! return_object(arg_array); //*rval = OBJECT_TO_JSVAL(result); ! JS_RemoveRoot(cx, &arg_array); end_func() *************** *** 5426,5429 **** --- 5455,5462 ---- // create an array of JS strings with which to initialize the array jsval* valarray = new jsval[ignore_list.size()]; + if (!valarray) + { + return JS_FALSE; + } *rval = *valarray; for (unsigned int i = 0; i < ignore_list.size(); i++) *************** *** 6790,6965 **** end_func() - /** - - Returns the name of the current map background music (could be a m3u list) - */ - begin_func(BgmName, 0) - std::string result; - if (!This->m_Engine->GetMapEngine()->BgmName(result)) - { - This->ReportMapEngineError("BgmName() failed"); - return JS_FALSE; - } - if(This->m_Engine->GetMapEngine()->BgmValid()) - result = ""; - - return_str(result.c_str()); - end_func() - - /** - - Returns the type of the current map background music: 0: none 1: midi 2: wav/mp3/it/xm - */ - begin_func(BgmValid, 0) - return_int( This->m_Engine->GetMapEngine()->BgmValid() ); - end_func() - - /** - - Starts the current map background music. If it is already playing, or doesnt exist, it does nothing. - Returns true if the music is playing - */ - begin_func(BgmPlay, 0) - This->m_Engine->GetMapEngine()->BgmPlay(); - return_bool(This->m_Engine->GetMapEngine()->BgmIsPlaying() == true); - end_func() - - /** - - Stops the current map background music. If it is already stopped, or doesnt exist, it does nothing. - Returns true if the music is stopped - */ - begin_func(BgmStop, 0) - This->m_Engine->GetMapEngine()->BgmStop(); // Audiere stop is void... why? - return_bool(This->m_Engine->GetMapEngine()->BgmIsPlaying() == false); - end_func() /** ! - Tells us if the background music is playing ! */ ! begin_func(BgmIsPlaying, 0) ! return_bool(This->m_Engine->GetMapEngine()->BgmIsPlaying()); ! end_func() ! ! /** ! - Rewind the background music. (Can be slow on streamed music) ! */ ! begin_func(BgmReset, 0) ! This->m_Engine->GetMapEngine()->BgmReset(); ! if(This->m_Engine->GetMapEngine()->BgmValid()) ! return_bool(true); ! else ! return_bool(false); ! end_func() ! ! /** ! - Enable/Disable Loop the current background music (it is repeated by default) ! Returns true if it succeeded setting the boolean value. ! */ ! begin_func(BgmSetRepeat, 1) ! arg_bool(onoff); ! This->m_Engine->GetMapEngine()->BgmSetRepeat(onoff); ! return_bool(This->m_Engine->GetMapEngine()->BgmGetRepeat() == onoff); ! end_func() ! ! /** ! - Returns true if the current background music is looped. False if not. ! */ ! begin_func(BgmGetRepeat, 0) ! return_bool(This->m_Engine->GetMapEngine()->BgmGetRepeat()); ! end_func() ! ! /** ! - Sets the volume of the current background music. The volume can be 0 to 255. ! - no effect on MIDIs ! */ ! begin_func(BgmSetVolume, 1) ! arg_int(volume); ! volume = volume<0 ? 0 : volume>255? 255 : volume; ! This->m_Engine->GetMapEngine()->BgmSetVolume(volume / 255.0f); ! end_func() ! ! /** ! - Gets the volume of the current background music. The volume can be 0 to 255. ! - no effect on MIDIs ! */ ! begin_func(BgmGetVolume, 0) ! float v = This->m_Engine->GetMapEngine()->BgmGetVolume(); ! if (v<0) ! return_int(255); ! else ! return_int(v * 255); ! end_func() ! ! /** ! - pan can be from -255 to 255. -255 = left, 255 = right. pan defaults to 0 (center). ! - no effect on MIDIs ! */ ! begin_func(BgmSetPan, 1) ! arg_int(pan); ! if (This->m_Engine->GetMapEngine()->BgmValid()) ! This->m_Engine->GetMapEngine()->BgmSetPan(pan / 255.0f); ! end_func() ! ! /** ! - returns the current pan of the sound (-255 to 255) ! - no effect on MIDIs */ ! begin_func(BgmGetPan, 0) ! if (This->m_Engine->GetMapEngine()->BgmValid()) ! return_int(This->m_Engine->GetMapEngine()->BgmGetPan() * 255); ! return_int(0); ! end_func() ! /** ! - pitch ranges from 0.5 to 2.0. 0.5 is an octave down (and half as fast) ! while 2.0 is an octave up (and twice as fast). pitch defaults to 1.0 ! - no effect on MIDIs ! */ ! begin_func(BgmSetPitch, 1) ! arg_double(pitch); ! if (This->m_Engine->GetMapEngine()->BgmValid()) ! This->m_Engine->GetMapEngine()->BgmSetPitchShift((float)pitch); ! end_func() - /** - - returns the current pitch - - no effect on MIDIs - */ - begin_func(BgmGetPitch, 0) - if (This->m_Engine->GetMapEngine()->BgmValid()) - return_double(This->m_Engine->GetMapEngine()->BgmGetPitchShift()); - else - return_double(1.0); end_func() - /** - - returns true if the background music is seekable - */ - begin_func(BgmIsSeekable, 0) - return_bool(This->m_Engine->GetMapEngine()->BgmIsSeekable()); - end_func() /** ! - returns the length the background music. Music must be seekable. */ ! begin_func(BgmGetLength, 0) ! return_int(This->m_Engine->GetMapEngine()->BgmGetLength()); ! end_func() ! /** ! - sets the position of the sound ! if the sound isn't seekable, this does nothing ! */ ! begin_func(BgmSetPosition, 1) ! arg_int(pos); ! This->m_Engine->GetMapEngine()->BgmSetPosition(pos); end_func() /** ! - gets the position of the sound ! if the sound isn't seekable, this does nothing */ ! begin_func(BgmGetPosition, 0) ! return_bool(This->m_Engine->GetMapEngine()->BgmGetPosition()); end_func() - //////////////////////////////////////////////////////////////////////////////// // section: Font functions // --- 6823,6872 ---- end_func() /** ! - Returns a soundobject of the current map background music */ ! begin_func(GetMapMusic,0) ! #if defined(WIN32) && defined(USE_MIDI) ! if(This->m_Engine->GetMapEngine()->getMidi()) ! return_object(CreateSoundObject(cx, NULL, This->m_Engine->GetMapEngine()->getMidi().get(), NULL)); ! else if(This->m_Engine->GetMapEngine()->getMusic()) ! return_object(CreateSoundObject(cx, This->m_Engine->GetMapEngine()->getMusic().get(), NULL, NULL)); ! else ! return_null(); ! #else ! if(This->m_Engine->GetMapEngine()->getMusic()) ! return_object(CreateSoundObject(cx, This->m_Engine->GetMapEngine()->getMusic().get(), NULL)); ! else ! return_null(); ! #endif end_func() /** ! - Returns the name of the current map background music (could be a m3u list) */ ! begin_func(GetMapMusicName, 0) ! std::string result; ! if (!This->m_Engine->GetMapEngine()->GetMapMusicName(result)) ! { ! This->ReportMapEngineError("GetMapMusicName() failed"); ! return JS_FALSE; ! } ! if(This->m_Engine->GetMapEngine()->GetMapMusicType()) ! result = ""; ! return_str(result.c_str()); end_func() /** ! - Returns the type of the current map background music: 0: none 1: midi 2: wav/mp3/it/xm */ ! begin_func(GetMapMusicType, 0) ! return_int( This->m_Engine->GetMapEngine()->GetMapMusicType() ); end_func() //////////////////////////////////////////////////////////////////////////////// // section: Font functions // *************** *** 12046,12050 **** /////////////////////////////////////// /** ! - draws 'text' at x, y with the font */ begin_method(SS_FONT, ssFontDrawText, 3) --- 11953,11959 ---- /////////////////////////////////////// /** ! - draws 'text' at x, y with the font. ! You can use octal notation to write characters that can not be written. ! for example: \222 for right single quotation mark. Sphere Font is CP1252. */ begin_method(SS_FONT, ssFontDrawText, 3) *************** *** 12115,12118 **** --- 12024,12032 ---- int array_size = lines.size(); jsval* array = new jsval[array_size]; + if (!array) + { + return JS_FALSE; + } + *rval = *array; for (int i = 0; i < array_size; ++i) { *************** *** 14461,14464 **** --- 14375,14379 ---- { "getNumKeys", ssFileGetNumKeys, 0, 0, 0 }, { "getKey", ssFileGetKey, 1, 0, 0 }, + { "removeKey", ssFileRemoveKey, 1, 0, 0 }, { 0, 0, 0, 0, 0 }, }; *************** *** 14569,14572 **** --- 14484,14501 ---- /////////////////////////////////////// /** + - Removes the key at 'index' (returns false if failed) + */ + begin_method(SS_FILE, ssFileRemoveKey, 1) + arg_int(index); + if (index < 0) + { + JS_ReportError(cx, "Index must be greater than zero... %d", index); + return JS_FALSE; + } + bool b = object->file->RemoveKey(-1,index); + return_bool(b); + end_method() + /////////////////////////////////////// + /** - writes the file to disk immediately... this way you don't have to wait for it to save when the file object is garbage collected Index: map_engine.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/map_engine.hpp,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -d -r1.86 -r1.87 *** map_engine.hpp 7 Apr 2009 22:46:07 -0000 1.86 --- map_engine.hpp 8 Nov 2009 00:38:57 -0000 1.87 *************** *** 186,190 **** bool ScreenToMapY(int layer, int sx, int& my); ! bool GetPersonList(std::vector<std::string>& list); bool DoesPersonExist(const char* name); bool CreatePerson(const char* name, const char* spriteset, bool destroy_with_map); --- 186,190 ---- bool ScreenToMapY(int layer, int sx, int& my); ! bool GetPersonList(std::vector<std::string>& list, int& size); bool DoesPersonExist(const char* name); bool CreatePerson(const char* name, const char* spriteset, bool destroy_with_map); *************** *** 281,302 **** bool SaveMap(const char* filename); ! bool BgmName(std::string& result); ! int BgmValid(); ! void BgmPlay(); ! void BgmStop(); ! bool BgmIsPlaying(); ! void BgmReset(); ! void BgmSetRepeat(bool repeat); ! bool BgmGetRepeat(); ! void BgmSetVolume(float volume); ! float BgmGetVolume(); ! void BgmSetPan(float pan); ! float BgmGetPan(); ! void BgmSetPitchShift(float shift); ! float BgmGetPitchShift(); ! bool BgmIsSeekable(); ! int BgmGetLength(); ! void BgmSetPosition(int position); ! int BgmGetPosition(); private: --- 281,288 ---- bool SaveMap(const char* filename); ! bool GetMapMusicName(std::string& result); ! int GetMapMusicType(); ! audiere::OutputStreamPtr getMusic(){return m_Music;}; ! audiere::MIDIStreamPtr getMidi(){return m_Midi;}; private: Index: parameters.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/parameters.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** parameters.hpp 7 Apr 2009 22:46:07 -0000 1.6 --- parameters.hpp 8 Nov 2009 00:38:57 -0000 1.7 *************** *** 8,12 **** ! int argInt(JSContext* cx, jsval arg); int argStrictInt(JSContext* cx, jsval arg); const char* argStr(JSContext* cx, jsval arg); --- 8,30 ---- ! /* ! * float numbers will be converted (rounded) automatically to the nearest integer, and so are strings ! * and objects. Objects need the method .valueOf() to be converted to number. ! */ ! inline int argInt(JSContext* cx, jsval arg) ! { ! // If the value is an integer, dispatch as soon as possible (8% performance boost) ! if (JSVAL_IS_INT(arg)) ! return JSVAL_TO_INT(arg); ! ! // The value is something else, convert it to integer ! int32 i; ! if (JS_ValueToECMAInt32(cx, arg, &i)) //used to be JS_ValueToInt32, which rounded negatives differently. ! return i; ! ! JS_ReportError(cx, "Invalid integer."); ! return 0; // invalid integer ! } ! int argStrictInt(JSContext* cx, jsval arg); const char* argStr(JSContext* cx, jsval arg); Index: sphere.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/sphere.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** sphere.cpp 27 Feb 2009 21:59:12 -0000 1.33 --- sphere.cpp 8 Nov 2009 00:38:57 -0000 1.34 *************** *** 62,65 **** --- 62,66 ---- bool show_menu = true; int package_name_index = -1; + int game_name_index = -1; // check for manual game selection for (int i = 1; i < argc; i++) *************** *** 102,158 **** i < argc - 1) { // if last parameter is a command, it doesn't mean anything - // look for a parameters string - - const char* parameters = ""; - for (int j = 0; j < argc - 1; j++) - { - if (strcmp(argv[j], "-parameters") == 0) - { - parameters = argv[j + 1]; - break; - } - } ! // run the sgm ! if ( ! Local::extension_compare(argv[i+1], ".sgm")){ ! QuitMessage("file needs to be '.sgm'"); ! return; ! } ! ! int pos = strlen(argv[i + 1]) - 1; ! ! ! //We're not interested in the sgm, we want the parent directory, lets find it: ! while( (pos>0) && (argv[i + 1][pos] != '/' ) && (argv[i + 1][pos] != '\\' ) ){ ! --pos; ! }; ! if(pos == 0){ ! pos = strlen(argv[i + 1]) - 1; ! } ! ! char path[256]; ! strncpy(path, argv[i+1],pos); ! path[pos] = '\0'; ! ! --pos; ! while( (pos>0) && (argv[i + 1][pos] != '/' ) && (argv[i + 1][pos] != '\\' ) ){ ! --pos; ! }; ! if(pos == 0){ ! pos = strlen(argv[i + 1]) - 1; ! } ! path[pos] = '\0'; ! if (EnterDirectory(path)) ! { ! RunGame(path +pos+1, parameters); ! LeaveDirectory(); ! } ! else ! { ! QuitMessage("Could not enter 'games' directory"); ! return; ! } ! show_menu = false; ////////////////////////////// --- 103,114 ---- i < argc - 1) { // if last parameter is a command, it doesn't mean anything ! // run the sgm ! if ( ! Local::extension_compare(argv[i+1], ".sgm")){ ! QuitMessage("file needs to be '.sgm'"); ! return; ! } ! game_name_index = i + 1; ////////////////////////////// *************** *** 189,192 **** --- 145,150 ---- if (i == 1 && Local::extension_compare(argv[i], ".spk")) package_name_index = i; + if (i == 1 && Local::extension_compare(argv[i], ".sgm")) + game_name_index = i; } } *************** *** 224,227 **** --- 182,235 ---- LeaveDirectory(); } + + if (game_name_index != -1) + + { + int pos = strlen(argv[game_name_index]) - 1; + + //We're not interested in the sgm, we want the parent directory, lets find it: + while( (pos>0) && (argv[game_name_index][pos] != '/' ) && (argv[game_name_index][pos] != '\\' ) ){ + --pos; + }; + if(pos == 0){ + pos = strlen(argv[game_name_index]) - 1; + } + + char path[256]; + strncpy(path, argv[game_name_index],pos); + path[pos] = '\0'; + + --pos; + while( (pos>0) && (argv[game_name_index][pos] != '/' ) && (argv[game_name_index][pos] != '\\' ) ){ + --pos; + }; + if(pos == 0){ + pos = strlen(argv[game_name_index]) - 1; + } + path[pos] = '\0'; + + // look for a parameters string + const char* parameters = ""; + for (int j = 0; j < argc - 1; j++) + { + if (strcmp(argv[j], "-parameters") == 0) + { + parameters = argv[j + 1]; + break; + } + } + + if (EnterDirectory(path)) + { + RunGame(path +pos+1, parameters); + LeaveDirectory(); + } + else + { + QuitMessage("Could not enter 'games' directory"); + return; + } + show_menu = false; + } // start the game specified on the command line |
From: FutureBoyNil <fut...@us...> - 2009-11-08 00:39:11
|
Update of /cvsroot/sphere/sphere/source/engine/unix In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2771/engine/unix Modified Files: unix_audio.cpp unix_audio.h Log Message: Optimized a few routines. Fixed GetPersonList() crash bug. GetTime() int-or-float (untested). GetMapMusic(). Index: unix_audio.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/unix/unix_audio.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** unix_audio.cpp 18 Jun 2008 19:53:01 -0000 1.8 --- unix_audio.cpp 8 Nov 2009 00:38:57 -0000 1.9 *************** *** 48,61 **** //////////////////////////////////////////////////////////////////////////////// ! audiere::OutputStream* SA_OpenSound(audiere::File* file, bool streaming) { ! return audiere::OpenSound(s_AudioDevice.get(), file, streaming); } //////////////////////////////////////////////////////////////////////////////// ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, audiere::SoundEffectType type) { ! return audiere::OpenSoundEffect(s_AudioDevice.get(), file, type); } --- 48,61 ---- //////////////////////////////////////////////////////////////////////////////// ! audiere::OutputStream* SA_OpenSound(audiere::File* file, const char* filename, bool streaming) { ! return audiere::OpenSound(s_AudioDevice.get(), file, streaming, audiere::GuessFormat(filename)); } //////////////////////////////////////////////////////////////////////////////// ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, const char* filename, audiere::SoundEffectType type) { ! return audiere::OpenSoundEffect(s_AudioDevice.get(), file, type, audiere::GuessFormat(filename)); } Index: unix_audio.h =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/unix/unix_audio.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** unix_audio.h 18 Jun 2008 19:53:01 -0000 1.9 --- unix_audio.h 8 Nov 2009 00:38:57 -0000 1.10 *************** *** 10,15 **** void CloseAudio(); ! audiere::OutputStream* SA_OpenSound(audiere::File* file, bool streaming); ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, audiere::SoundEffectType type); #endif --- 10,15 ---- void CloseAudio(); ! audiere::OutputStream* SA_OpenSound(audiere::File* file, const char* filename, bool streaming); ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, const char* filename, audiere::SoundEffectType type); #endif |
From: FutureBoyNil <fut...@us...> - 2009-11-08 00:39:11
|
Update of /cvsroot/sphere/sphere/source In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2771 Added Files: .cvsignore Log Message: Optimized a few routines. Fixed GetPersonList() crash bug. GetTime() int-or-float (untested). GetMapMusic(). --- NEW FILE: .cvsignore --- third-party-msvc |
From: FutureBoyNil <fut...@us...> - 2009-11-08 00:39:09
|
Update of /cvsroot/sphere/sphere/source/engine/mac In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2771/engine/mac Modified Files: mac_audio.cpp mac_audio.h Log Message: Optimized a few routines. Fixed GetPersonList() crash bug. GetTime() int-or-float (untested). GetMapMusic(). Index: mac_audio.h =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/mac/mac_audio.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mac_audio.h 18 Jun 2008 19:53:01 -0000 1.2 --- mac_audio.h 8 Nov 2009 00:38:57 -0000 1.3 *************** *** 10,15 **** void CloseAudio(); ! audiere::OutputStream* SA_OpenSound(audiere::File* file, bool streaming); ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, audiere::SoundEffectType type); #endif --- 10,15 ---- void CloseAudio(); ! audiere::OutputStream* SA_OpenSound(audiere::File* file, const char* filename, bool streaming); ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, const char* filename, audiere::SoundEffectType type); #endif Index: mac_audio.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/mac/mac_audio.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** mac_audio.cpp 18 Jun 2008 19:53:01 -0000 1.2 --- mac_audio.cpp 8 Nov 2009 00:38:57 -0000 1.3 *************** *** 40,53 **** //////////////////////////////////////////////////////////////////////////////// ! audiere::OutputStream* SA_OpenSound(audiere::File* file, bool streaming) { ! return audiere::OpenSound(s_AudioDevice.get(), file, streaming); } //////////////////////////////////////////////////////////////////////////////// ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, audiere::SoundEffectType type) { ! return audiere::OpenSoundEffect(s_AudioDevice.get(), file, type); } --- 40,53 ---- //////////////////////////////////////////////////////////////////////////////// ! audiere::OutputStream* SA_OpenSound(audiere::File* file, const char* filename, bool streaming) { ! return audiere::OpenSound(s_AudioDevice.get(), file, streaming, audiere::GuessFormat(filename)); } //////////////////////////////////////////////////////////////////////////////// ! audiere::SoundEffect* SA_OpenSoundEffect(audiere::File* file, const char* filename, audiere::SoundEffectType type) { ! return audiere::OpenSoundEffect(s_AudioDevice.get(), file, type, audiere::GuessFormat(filename)); } |
From: FutureBoyNil <fut...@us...> - 2009-11-08 00:39:07
|
Update of /cvsroot/sphere/sphere/source/common In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2771/common Modified Files: Layer.hpp PackageFileSystem.hpp Playlist.hpp configfile.cpp configfile.hpp Added Files: input_constants.h Log Message: Optimized a few routines. Fixed GetPersonList() crash bug. GetTime() int-or-float (untested). GetMapMusic(). Index: configfile.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/common/configfile.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** configfile.hpp 25 Feb 2009 10:50:57 -0000 1.6 --- configfile.hpp 8 Nov 2009 00:38:57 -0000 1.7 *************** *** 5,10 **** #endif #include <map> - #include <memory> - #include <cstring> #include <string> #include "DefaultFileSystem.hpp" --- 5,8 ---- *************** *** 27,30 **** --- 25,29 ---- int GetNumKeys(const int section) const; std::string GetKey(const int section, const int index) const; + bool RemoveKey(const int section, const int index) const; std::string GetValue(const int section, const int index) const; private: Index: Layer.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/common/Layer.hpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Layer.hpp 25 Feb 2009 10:50:57 -0000 1.10 --- Layer.hpp 8 Nov 2009 00:38:57 -0000 1.11 *************** *** 2,6 **** #define LAYER_HPP #include <string> - #include <cstring> #include "types.h" #include "ObstructionMap.hpp" --- 2,5 ---- Index: PackageFileSystem.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/common/PackageFileSystem.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** PackageFileSystem.hpp 25 Feb 2009 10:50:57 -0000 1.5 --- PackageFileSystem.hpp 8 Nov 2009 00:38:57 -0000 1.6 *************** *** 3,8 **** #include <vector> #include <string> ! #include <cstring> ! #include <cstdio> #include "../common/IFileSystem.hpp" #include "../common/types.h" --- 3,7 ---- #include <vector> #include <string> ! #include <stdio.h> #include "../common/IFileSystem.hpp" #include "../common/types.h" Index: Playlist.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/common/Playlist.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Playlist.hpp 25 Feb 2009 10:50:57 -0000 1.5 --- Playlist.hpp 8 Nov 2009 00:38:57 -0000 1.6 *************** *** 5,9 **** #endif #include "../common/DefaultFileSystem.hpp" - #include <memory> #include <string> #include <vector> --- 5,8 ---- Index: configfile.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/common/configfile.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** configfile.cpp 25 Jan 2007 23:44:49 -0000 1.13 --- configfile.cpp 8 Nov 2009 00:38:57 -0000 1.14 *************** *** 89,95 **** --- 89,156 ---- } //////////////////////////////////////////////////////////////////////////////// + bool + CConfigFile::RemoveKey(const int section, const int index) const + { + if (section == -1) + { + int num_keys = 0; + std::map<std::string, Section>::const_iterator i; + for (i = m_sections.begin(); i != m_sections.end(); i++) + { + + const Section& s = i->second; + std::map<std::string, std::string>::const_iterator j; + std::string keyname; + for (j = s.entries.begin(); j != s.entries.end(); j++) + { + + if (num_keys == index) + { + //s.entries.get_allocator() + //j.erase(i); + std::map<std::string, std::string> SS = s.entries; + std::map<std::string, std::string>::iterator it; + it=SS.find(j->first); + SS.erase(it); + return true; + + m_sections.find(i->first); + + SS.empty(); + SS.clear(); + + //SS.erase(SS.begin()); + //SS.erase(SS.end()); + return true; + SS.erase(j->first); + return ""; + keyname = j->first; + std::map<std::string, std::string>::const_iterator ii; + ii= s.entries.find(keyname); + if( ii != s.entries.end() ) + { + //s.entries.erase (s.entries.find(keyname)); + //s.entries.erase( ii ++,ii ); + } + + //s.entries. + // s.entries.erase(j); + //m_sections.erase(i->first, j->first); + + // return j->first.c_str(); + } + num_keys += 1; + } + } + return ""; + } + return ""; + } + //////////////////////////////////////////////////////////////////////////////// std::string CConfigFile::GetValue(const int section, const int index) const { + //if(m_sections.find(section) != m_sections.end()) + // return m_sections[section]; return ""; } --- NEW FILE: input_constants.h --- // Common Input Constants (Keyboard, mouse, joystick) #define MAX_KEY 256 // key defines #define KEY_ESCAPE 1 #define KEY_F1 2 #define KEY_F2 3 #define KEY_F3 4 #define KEY_F4 5 #define KEY_F5 6 #define KEY_F6 7 #define KEY_F7 8 #define KEY_F8 9 #define KEY_F9 10 #define KEY_F10 11 #define KEY_F11 12 #define KEY_F12 13 #define KEY_TILDE 14 #define KEY_0 15 #define KEY_1 16 #define KEY_2 17 #define KEY_3 18 #define KEY_4 19 #define KEY_5 20 #define KEY_6 21 #define KEY_7 22 #define KEY_8 23 #define KEY_9 24 #define KEY_MINUS 25 #define KEY_EQUALS 26 #define KEY_BACKSPACE 27 #define KEY_TAB 28 #define KEY_A 29 #define KEY_B 30 #define KEY_C 31 #define KEY_D 32 #define KEY_E 33 #define KEY_F 34 #define KEY_G 35 #define KEY_H 36 #define KEY_I 37 #define KEY_J 38 #define KEY_K 39 #define KEY_L 40 #define KEY_M 41 #define KEY_N 42 #define KEY_O 43 #define KEY_P 44 #define KEY_Q 45 #define KEY_R 46 #define KEY_S 47 #define KEY_T 48 #define KEY_U 49 #define KEY_V 50 #define KEY_W 51 #define KEY_X 52 #define KEY_Y 53 #define KEY_Z 54 #define KEY_SHIFT 55 #define KEY_CAPSLOCK 56 #define KEY_NUMLOCK 57 #define KEY_SCROLLOCK 58 #define KEY_CTRL 59 #define KEY_ALT 60 #define KEY_SPACE 61 #define KEY_OPENBRACE 62 #define KEY_CLOSEBRACE 63 #define KEY_SEMICOLON 64 #define KEY_APOSTROPHE 65 #define KEY_COMMA 66 #define KEY_PERIOD 67 #define KEY_SLASH 68 #define KEY_BACKSLASH 69 #define KEY_ENTER 70 #define KEY_INSERT 71 #define KEY_DELETE 72 #define KEY_HOME 73 #define KEY_END 74 #define KEY_PAGEUP 75 #define KEY_PAGEDOWN 76 #define KEY_UP 77 #define KEY_RIGHT 78 #define KEY_DOWN 79 #define KEY_LEFT 80 #define KEY_NUM_0 81 #define KEY_NUM_1 82 #define KEY_NUM_2 83 #define KEY_NUM_3 84 #define KEY_NUM_4 85 #define KEY_NUM_5 86 #define KEY_NUM_6 87 #define KEY_NUM_7 88 #define KEY_NUM_8 89 #define KEY_NUM_9 90 #define MODKEY_NONE 0 #define MODKEY_CAPSLOCK 1 #define MODKEY_NUMLOCK 2 #define MODKEY_SCROLLOCK 3 #define MOUSE_LEFT 0 #define MOUSE_MIDDLE 1 #define MOUSE_RIGHT 2 #define MOUSE_WHEEL_UP 3 #define MOUSE_WHEEL_DOWN 4 #define JOYSTICK_AXIS_X 0 #define JOYSTICK_AXIS_Y 1 #define JOYSTICK_AXIS_Z 2 #define JOYSTICK_AXIS_R 3 #define JOYSTICK_AXIS_U 4 #define JOYSTICK_AXIS_V 5 #define JOYSTICK_MAX_AXIS 5 #define PLAYER_1 0 #define PLAYER_2 1 #define PLAYER_3 2 #define PLAYER_4 3 #define PLAYER_KEY_MENU 4 #define PLAYER_KEY_UP 5 #define PLAYER_KEY_DOWN 6 #define PLAYER_KEY_LEFT 7 #define PLAYER_KEY_RIGHT 8 #define PLAYER_KEY_A 9 #define PLAYER_KEY_B 10 #define PLAYER_KEY_X 11 #define PLAYER_KEY_Y 12 |
From: FutureBoyNil <fut...@us...> - 2009-11-07 22:37:45
|
Update of /cvsroot/sphere/sphere/source/particle_engine In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv22375 Modified Files: ParticleRenderer.cpp Log Message: Another way of testing for out-of-range blendmodes Index: ParticleRenderer.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/particle_engine/ParticleRenderer.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ParticleRenderer.cpp 11 Mar 2009 19:30:05 -0000 1.3 --- ParticleRenderer.cpp 7 Nov 2009 22:37:27 -0000 1.4 *************** *** 25,36 **** ParticleRenderer::SetBlendMode(CImage32::BlendMode blendmode) { ! switch (blendmode) ! { ! case CImage32::BLEND: m_BlendMode = CImage32::BLEND; break; ! case CImage32::ADD: m_BlendMode = CImage32::ADD; break; ! case CImage32::SUBTRACT: m_BlendMode = CImage32::SUBTRACT; break; ! case CImage32::MULTIPLY: m_BlendMode = CImage32::MULTIPLY; break; ! } ! } --- 25,29 ---- ParticleRenderer::SetBlendMode(CImage32::BlendMode blendmode) { ! m_BlendMode = blendmode; } *************** *** 39,43 **** ParticleRenderer::SetBlendMode(int blendmode) { ! switch (blendmode) { case CImage32::BLEND: m_BlendMode = CImage32::BLEND; break; --- 32,39 ---- ParticleRenderer::SetBlendMode(int blendmode) { ! if(blendmode >=0 && blendmode < CImage32::NUM_BLENDS) ! m_BlendMode = (CImage32::BlendMode)blendmode; ! /* ! switch (blendmode) { case CImage32::BLEND: m_BlendMode = CImage32::BLEND; break; *************** *** 46,50 **** case CImage32::MULTIPLY: m_BlendMode = CImage32::MULTIPLY; break; } ! } --- 42,46 ---- case CImage32::MULTIPLY: m_BlendMode = CImage32::MULTIPLY; break; } ! */ } |
From: FutureBoyNil <fut...@us...> - 2009-05-09 10:20:03
|
Update of /cvsroot/sphere/sphere/source/editor/resources In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv2220 Modified Files: image.ico image_toolbar.bmp maptool.ico maptool_paste.ico project.ico pv_closed_folder.ico pv_open_folder.ico script.ico sound.ico unknown.ico resource.h Log Message: New icons for the editor Index: unknown.ico =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/unknown.ico,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsylhm0t and /tmp/cvshUI2oR differ Index: maptool_paste.ico =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/maptool_paste.ico,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvsKhPrUr and /tmp/cvshiIOjP differ Index: image_toolbar.bmp =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/image_toolbar.bmp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 Binary files /tmp/cvsy3UYds and /tmp/cvsKza1DP differ Index: image.ico =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/image.ico,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvsNx1qxs and /tmp/cvsu558XP differ Index: sound.ico =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/sound.ico,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvs0NLsQs and /tmp/cvsD3ZOhQ differ Index: project.ico =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/project.ico,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvs3kVCuv and /tmp/cvszExDWS differ Index: maptool.ico =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/maptool.ico,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvswKSW8v and /tmp/cvsEqAIBT differ Index: pv_open_folder.ico =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/pv_open_folder.ico,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvspA7ulw and /tmp/cvsKSeaPT differ Index: resource.h =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/resource.h,v retrieving revision 1.174 retrieving revision 1.175 diff -C2 -d -r1.174 -r1.175 *** resource.h 15 Mar 2008 20:52:23 -0000 1.174 --- resource.h 9 May 2009 10:19:50 -0000 1.175 *************** *** 559,562 **** --- 559,563 ---- #define ID_SWATCHPALETTE_DEFAULT_RGB332 40634 #define ID_SWATCHPALETTE_DEFAULT_VISIBONE2 40635 + #define ID_SWATCHPALETTE_DEFAULT_HSL256 40636 #define ID_OBSTRUCTIONPRESETS_CUSTOM1 40637 #define ID_OBSTRUCTIONPRESETS_CUSTOM2 40638 Index: pv_closed_folder.ico =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/pv_closed_folder.ico,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvsAZRN5u and /tmp/cvsbQ2jBS differ Index: script.ico =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/script.ico,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvsfE7ncv and /tmp/cvsPJzLIS differ |
From: FutureBoyNil <fut...@us...> - 2009-05-09 10:17:22
|
Update of /cvsroot/sphere/sphere/source/editor In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1659/editor Modified Files: ScriptWindow.cpp Log Message: Fixed newly introduced typeahead bug Index: ScriptWindow.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/ScriptWindow.cpp,v retrieving revision 1.97 retrieving revision 1.98 diff -C2 -d -r1.97 -r1.98 *** ScriptWindow.cpp 26 Mar 2009 02:05:05 -0000 1.97 --- ScriptWindow.cpp 9 May 2009 10:17:08 -0000 1.98 *************** *** 1327,1343 **** //SendEditor(SCI_SETWORDCHARS, 0, (LPARAM)"_.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); ! int cur_pos = SendEditor(SCI_GETCURRENTPOS); ! int word_pos = SendEditor(SCI_WORDSTARTPOSITION, cur_pos); ! int len = cur_pos - word_pos; if (word_pos >= 0 && len > 0) { // ! char linebuf[1024]; ! int current = SendEditor(SCI_GETCURLINE, sizeof(linebuf), reinterpret_cast<LPARAM>(static_cast<char *>(linebuf))); linebuf[current] = '\0'; ! char* word = linebuf + word_pos; // Ok, now we have 'word' we need to check ourselves if it matches, because if it doesnt, it still will make SCintilla flikker. // THIS CAUSES THE FLICKERING, we need to make sure first IF we need to show the box with syntax. SCI-team ignored this error. ! if (strstr(sFunctionDefinitions,word)) // horribly inefficient find-string-in-string function (but it works) SendEditor(SCI_AUTOCSHOW, cur_pos - word_pos, (LPARAM)sFunctionDefinitions); } --- 1327,1346 ---- //SendEditor(SCI_SETWORDCHARS, 0, (LPARAM)"_.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"); ! LPARAM cur_pos = SendEditor(SCI_GETCURRENTPOS); ! LPARAM word_pos = SendEditor(SCI_WORDSTARTPOSITION, cur_pos); ! long len = cur_pos - word_pos; ! if(len<0) len=0; if (word_pos >= 0 && len > 0) { // ! char linebuf[1024*8]; ! LRESULT current = SendEditor(SCI_GETCURLINE, sizeof(linebuf), reinterpret_cast<LPARAM>(static_cast<char *>(linebuf))); ! if(current>=sizeof(linebuf)) current = 0; ! if(current<0) current = 0; linebuf[current] = '\0'; ! char* word = linebuf + (current-len); // Ok, now we have 'word' we need to check ourselves if it matches, because if it doesnt, it still will make SCintilla flikker. // THIS CAUSES THE FLICKERING, we need to make sure first IF we need to show the box with syntax. SCI-team ignored this error. ! if ((len >0) && strstr(sFunctionDefinitions,word)) // horribly inefficient find-string-in-string function (but it works) SendEditor(SCI_AUTOCSHOW, cur_pos - word_pos, (LPARAM)sFunctionDefinitions); } |
From: FutureBoyNil <fut...@us...> - 2009-05-09 10:15:47
|
Update of /cvsroot/sphere/sphere/source/editor In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1185/editor Modified Files: SwatchPalette.cpp SwatchPalette.hpp Log Message: Added HLS swatch palette Index: SwatchPalette.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/SwatchPalette.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** SwatchPalette.cpp 25 Jan 2007 23:45:24 -0000 1.14 --- SwatchPalette.cpp 9 May 2009 10:15:29 -0000 1.15 *************** *** 25,28 **** --- 25,29 ---- ON_COMMAND(ID_SWATCHPALETTE_DEFAULT_RGB332, OnDefaultRGB332) ON_COMMAND(ID_SWATCHPALETTE_DEFAULT_VISIBONE2, OnDefaultVisibone2) + ON_COMMAND(ID_SWATCHPALETTE_DEFAULT_HSL256, OnDefaultHsl256) ON_COMMAND(ID_SWATCHPALETTE_INSERTBEFORE, OnInsertColorBefore) *************** *** 502,505 **** --- 503,529 ---- //////////////////////////////////////////////////////////////////////////////// afx_msg void + CSwatchPalette::OnDefaultHsl256() + { + CSwatchServer* swatch = CSwatchServer::Instance(); + if (!swatch) return; + + swatch->Clear(); + for (int i = 0; i < 256; i++) + { + RGBA color = { + hsl256_palette[i].red, + hsl256_palette[i].green, + hsl256_palette[i].blue, + 255 + }; + swatch->SetColor(i, color); + } + + UpdateScrollBar(); + Invalidate(); + } + + //////////////////////////////////////////////////////////////////////////////// + afx_msg void CSwatchPalette::OnInsertColorBefore() { Index: SwatchPalette.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/SwatchPalette.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SwatchPalette.hpp 25 Jan 2007 23:45:24 -0000 1.4 --- SwatchPalette.hpp 9 May 2009 10:15:29 -0000 1.5 *************** *** 30,33 **** --- 30,34 ---- afx_msg void OnDefaultRGB332(); afx_msg void OnDefaultVisibone2(); + afx_msg void OnDefaultHsl256(); afx_msg void OnInsertColorBefore(); afx_msg void OnInsertColorAfter(); |
From: FutureBoyNil <fut...@us...> - 2009-05-09 10:15:42
|
Update of /cvsroot/sphere/sphere/source/common In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv1185/common Modified Files: Image32.cpp Image32.hpp common_palettes.cpp common_palettes.hpp Log Message: Added HLS swatch palette Index: Image32.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/common/Image32.hpp,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** Image32.hpp 7 Apr 2009 22:46:07 -0000 1.29 --- Image32.hpp 9 May 2009 10:15:28 -0000 1.30 *************** *** 29,32 **** --- 29,33 ---- AVERAGE, INVERT, + NUM_BLENDS }; Index: Image32.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/common/Image32.cpp,v retrieving revision 1.59 retrieving revision 1.60 diff -C2 -d -r1.59 -r1.60 *** Image32.cpp 7 Apr 2009 22:46:07 -0000 1.59 --- Image32.cpp 9 May 2009 10:15:28 -0000 1.60 *************** *** 909,913 **** // Fill background with given color ! void CImage32::SeedFill_4(int x, int y, RGBA new_color, clipper clip) { int left, x1, x2, dy; --- 909,913 ---- // Fill background with given color ! inline void CImage32::SeedFill_4(int x, int y, RGBA new_color, clipper clip) { int left, x1, x2, dy; Index: common_palettes.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/common/common_palettes.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** common_palettes.cpp 25 Jan 2007 23:44:49 -0000 1.4 --- common_palettes.cpp 9 May 2009 10:15:28 -0000 1.5 *************** *** 1315,1316 **** --- 1315,1577 ---- {255, 255, 255} }; + + // hsl palette + RGB hsl256_palette[256] = + { + {0, 0, 0}, + {17, 17, 17}, + {34, 34, 34}, + {51, 51, 51}, + {68, 68, 68}, + {85, 85, 85}, + {102, 102, 102}, + {119, 119, 119}, + {136, 136, 136}, + {153, 153, 153}, + {170, 170, 170}, + {187, 187, 187}, + {204, 204, 204}, + {221, 221, 221}, + {238, 238, 238}, + {255, 255, 255}, + {30, 0, 0}, + {60, 0, 0}, + {90, 0, 0}, + {120, 0, 0}, + {150, 0, 0}, + {180, 0, 0}, + {210, 0, 0}, + {240, 0, 0}, + {255, 15, 15}, + {255, 45, 45}, + {255, 75, 75}, + {255, 105, 105}, + {255, 135, 135}, + {255, 165, 165}, + {255, 195, 195}, + {255, 225, 225}, + {30, 12, 0}, + {60, 24, 0}, + {90, 36, 0}, + {120, 48, 0}, + {150, 60, 0}, + {180, 72, 0}, + {210, 84, 0}, + {240, 96, 0}, + {255, 111, 15}, + {255, 129, 45}, + {255, 147, 75}, + {255, 165, 105}, + {255, 183, 135}, + {255, 201, 165}, + {255, 219, 195}, + {255, 237, 225}, + {30, 24, 0}, + {60, 48, 0}, + {90, 72, 0}, + {120, 96, 0}, + {150, 120, 0}, + {180, 144, 0}, + {210, 168, 0}, + {240, 192, 0}, + {255, 207, 15}, + {255, 213, 45}, + {255, 219, 75}, + {255, 225, 105}, + {255, 231, 135}, + {255, 237, 165}, + {255, 243, 195}, + {255, 249, 225}, + {24, 30, 0}, + {48, 60, 0}, + {72, 90, 0}, + {96, 120, 0}, + {120, 150, 0}, + {144, 180, 0}, + {168, 210, 0}, + {192, 240, 0}, + {207, 255, 15}, + {213, 255, 45}, + {219, 255, 75}, + {225, 255, 105}, + {231, 255, 135}, + {237, 255, 165}, + {243, 255, 195}, + {249, 255, 225}, + {12, 30, 0}, + {24, 60, 0}, + {36, 90, 0}, + {48, 120, 0}, + {60, 150, 0}, + {72, 180, 0}, + {84, 210, 0}, + {96, 240, 0}, + {111, 255, 15}, + {129, 255, 45}, + {147, 255, 75}, + {165, 255, 105}, + {183, 255, 135}, + {201, 255, 165}, + {219, 255, 195}, + {237, 255, 225}, + {0, 30, 0}, + {0, 60, 0}, + {0, 90, 0}, + {0, 120, 0}, + {0, 150, 0}, + {0, 180, 0}, + {0, 210, 0}, + {0, 240, 0}, + {15, 255, 15}, + {45, 255, 45}, + {75, 255, 75}, + {105, 255, 105}, + {135, 255, 135}, + {165, 255, 165}, + {195, 255, 195}, + {225, 255, 225}, + {0, 30, 12}, + {0, 60, 24}, + {0, 90, 36}, + {0, 120, 48}, + {0, 150, 60}, + {0, 180, 72}, + {0, 210, 84}, + {0, 240, 96}, + {15, 255, 111}, + {45, 255, 129}, + {75, 255, 147}, + {105, 255, 165}, + {135, 255, 183}, + {165, 255, 201}, + {195, 255, 219}, + {225, 255, 237}, + {0, 30, 24}, + {0, 60, 48}, + {0, 90, 72}, + {0, 120, 96}, + {0, 150, 120}, + {0, 180, 144}, + {0, 210, 168}, + {0, 240, 192}, + {15, 255, 207}, + {45, 255, 213}, + {75, 255, 219}, + {105, 255, 225}, + {135, 255, 231}, + {165, 255, 237}, + {195, 255, 243}, + {225, 255, 249}, + {0, 24, 30}, + {0, 48, 60}, + {0, 72, 90}, + {0, 96, 120}, + {0, 120, 150}, + {0, 144, 180}, + {0, 168, 210}, + {0, 192, 240}, + {15, 207, 255}, + {45, 213, 255}, + {75, 219, 255}, + {105, 225, 255}, + {135, 231, 255}, + {165, 237, 255}, + {195, 243, 255}, + {225, 249, 255}, + {0, 12, 30}, + {0, 24, 60}, + {0, 36, 90}, + {0, 48, 120}, + {0, 60, 150}, + {0, 72, 180}, + {0, 84, 210}, + {0, 96, 240}, + {15, 111, 255}, + {45, 129, 255}, + {75, 147, 255}, + {105, 165, 255}, + {135, 183, 255}, + {165, 201, 255}, + {195, 219, 255}, + {225, 237, 255}, + {0, 0, 30}, + {0, 0, 60}, + {0, 0, 90}, + {0, 0, 120}, + {0, 0, 150}, + {0, 0, 180}, + {0, 0, 210}, + {0, 0, 240}, + {15, 15, 255}, + {45, 45, 255}, + {75, 75, 255}, + {105, 105, 255}, + {135, 135, 255}, + {165, 165, 255}, + {195, 195, 255}, + {225, 225, 255}, + {12, 0, 30}, + {24, 0, 60}, + {36, 0, 90}, + {48, 0, 120}, + {60, 0, 150}, + {72, 0, 180}, + {84, 0, 210}, + {96, 0, 240}, + {111, 15, 255}, + {129, 45, 255}, + {147, 75, 255}, + {165, 105, 255}, + {183, 135, 255}, + {201, 165, 255}, + {219, 195, 255}, + {237, 225, 255}, + {24, 0, 30}, + {48, 0, 60}, + {72, 0, 90}, + {96, 0, 120}, + {120, 0, 150}, + {144, 0, 180}, + {168, 0, 210}, + {192, 0, 240}, + {207, 15, 255}, + {213, 45, 255}, + {219, 75, 255}, + {225, 105, 255}, + {231, 135, 255}, + {237, 165, 255}, + {243, 195, 255}, + {249, 225, 255}, + {30, 0, 24}, + {60, 0, 48}, + {90, 0, 72}, + {120, 0, 96}, + {150, 0, 120}, + {180, 0, 144}, + {210, 0, 168}, + {240, 0, 192}, + {255, 15, 207}, + {255, 45, 213}, + {255, 75, 219}, + {255, 105, 225}, + {255, 135, 231}, + {255, 165, 237}, + {255, 195, 243}, + {255, 225, 249}, + {30, 0, 12}, + {60, 0, 24}, + {90, 0, 36}, + {120, 0, 48}, + {150, 0, 60}, + {180, 0, 72}, + {210, 0, 84}, + {240, 0, 96}, + {255, 15, 111}, + {255, 45, 129}, + {255, 75, 147}, + {255, 105, 165}, + {255, 135, 183}, + {255, 165, 201}, + {255, 195, 219}, + {255, 225, 237} + }; Index: common_palettes.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/common/common_palettes.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** common_palettes.hpp 25 Jan 2007 23:44:49 -0000 1.5 --- common_palettes.hpp 9 May 2009 10:15:28 -0000 1.6 *************** *** 7,9 **** --- 7,10 ---- extern RGB rgb332_palette[256]; extern RGB visibone2_palette[256]; + extern RGB hsl256_palette[256]; #endif |
From: FutureBoyNil <fut...@us...> - 2009-04-20 06:33:39
|
Update of /cvsroot/sphere/sphere/source/engine In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv10556 Modified Files: script.cpp Log Message: Changed SetPersonData() in the hope its more stable Index: script.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/script.cpp,v retrieving revision 1.229 retrieving revision 1.230 diff -C2 -d -r1.229 -r1.230 *** script.cpp 17 Apr 2009 01:46:00 -0000 1.229 --- script.cpp 20 Apr 2009 06:33:29 -0000 1.230 *************** *** 2765,2769 **** } } ! for (unsigned int i = 0; i < lengthA; i++) delete pointsA[i]; for (unsigned int i = 0; i < lengthB; i++) --- 2765,2770 ---- } } ! ! for (unsigned int i = 0; i < lengthA; i++) delete pointsA[i]; for (unsigned int i = 0; i < lengthB; i++) *************** *** 2780,2784 **** If invert is true, all points in the bounding box of the polygon, but not in the polygon will be colored. - */ begin_func(Polygon, 2) --- 2781,2784 ---- *************** *** 2789,2793 **** int invert = 0; ! if (argc >= 3) { invert = argInt(cx, argv[2]); --- 2789,2793 ---- int invert = 0; ! if (argc > 2) { invert = argInt(cx, argv[2]); *************** *** 2797,2800 **** --- 2797,2810 ---- } } + int offsetX = 0; + int offsetY = 0; + if (argc > 3) + { + offsetX = argInt(cx, argv[3]); + } + if (argc > 4) + { + offsetY = argInt(cx, argv[4]); + } jsval v; *************** *** 2827,2830 **** --- 2837,2848 ---- } + if(offsetX !=0 || offsetY !=0){ + for (unsigned int i = 0; i < length; i++) + { + points[i]->x += offsetX; + points[i]->y += offsetY; + } + } + DrawPolygon(points, length, invert, c); for (unsigned int i = 0; i < length; i++) *************** *** 5886,5894 **** return JS_FALSE; for (jsint i = ids->length -1; i>=0; --i) { jsval val; ! if (JS_IdToValue(cx, ids[0].vector[i], &val) == JS_TRUE) { --- 5904,5927 ---- return JS_FALSE; + jsval id, val; + int i = ids->length; + while (i--) { + JS_IdToValue(cx, ids->vector[i], &id); + if (JSVAL_IS_STRING(id)) { + struct PersonData data; + data.name = JS_GetStringBytes(JSVAL_TO_STRING(id)); + if (JS_LookupProperty(cx, data_object, data.name.c_str(), &val)) { + ParsePersonData(cx, val, data.string_value, data.double_value, data.type); + } + person_data.push_back(data); + } + } + /* + // This code sometimes data.name = argStr() was empty, and JS_GetProperty failed. for (jsint i = ids->length -1; i>=0; --i) { jsval val; ! if (JS_IdToValue(cx, ids->vector[i], &val) == JS_TRUE) { *************** *** 5902,5905 **** --- 5935,5939 ---- } } + */ JS_RemoveRoot(cx, &ids); JS_DestroyIdArray(cx, ids); |
From: FutureBoyNil <fut...@us...> - 2009-04-17 02:17:34
|
Update of /cvsroot/sphere/sphere/source/engine In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv4792 Modified Files: script.cpp Log Message: FindColor now returns a point, Collision now returns an index, person constructor now stable (I think) Index: script.cpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/script.cpp,v retrieving revision 1.228 retrieving revision 1.229 diff -C2 -d -r1.228 -r1.229 *** script.cpp 7 Apr 2009 22:46:07 -0000 1.228 --- script.cpp 17 Apr 2009 01:46:00 -0000 1.229 *************** *** 677,681 **** ! // keyboard constants #define KEY_CONSTANT(name) { #name, name }, KEY_CONSTANT(KEY_ESCAPE) --- 677,681 ---- ! /* keyboard constants */ #define KEY_CONSTANT(name) { #name, name }, KEY_CONSTANT(KEY_ESCAPE) *************** *** 905,909 **** { // handle garbage collection ! if (This->m_GCEnabled && This->m_GCCount++ >= 60*60) { // handle system events --- 905,909 ---- { // handle garbage collection ! if (This->m_GCEnabled && This->m_GCCount++ >= 60*60*8) { // handle system events *************** *** 1206,1210 **** jsval images_array; ! if ( JS_GetProperty(cx, obj, "images", &images_array) == JS_FALSE ) { JS_RemoveRoot(cx, &obj); --- 1206,1210 ---- jsval images_array; ! if ( JS_GetProperty(cx, obj, "images", &images_array) == JS_FALSE || !JS_AddNamedRoot(cx, &images_array, "images_array")) { JS_RemoveRoot(cx, &obj); *************** *** 1212,1283 **** return NULL; } - JS_AddNamedRoot(cx, &images_array, "images_array"); // Root variable to keep it save from CG - jsval base_obstruction_val; ! if ( JS_GetProperty(cx, obj, "base", &base_obstruction_val) == JS_FALSE ) { - JS_RemoveRoot(cx, &obj); JS_RemoveRoot(cx, &images_array); JS_ReportError(cx, "spriteset.base object property doesn't appear to exist."); return NULL; } - JS_AddNamedRoot(cx, &base_obstruction_val, "base_obstruction_val"); // Root variable to keep it save from CG - jsval x1_val, y1_val, x2_val, y2_val; JSObject* base_obstruction_object = argObject(cx, base_obstruction_val); ! if (base_obstruction_object == NULL) { - JS_RemoveRoot(cx, &obj); - JS_RemoveRoot(cx, &images_array); JS_RemoveRoot(cx, &base_obstruction_val); ! JS_ReportError(cx, "spriteset.base object is not a valid object."); return NULL; } - JS_AddNamedRoot(cx, &base_obstruction_object, "base_obstruction_object"); // Root variable to keep it save from CG ! if ( JS_GetProperty(cx, base_obstruction_object, "x1", &x1_val) == JS_FALSE ! || JS_GetProperty(cx, base_obstruction_object, "y1", &y1_val) == JS_FALSE ! || JS_GetProperty(cx, base_obstruction_object, "x2", &x2_val) == JS_FALSE ! || JS_GetProperty(cx, base_obstruction_object, "y2", &y2_val) == JS_FALSE ) { JS_ReportError(cx, "spriteset.base object is invalid."); return NULL; } - // Root variable to keep it save from CG - JS_AddRoot(cx, &x1_val); JS_AddRoot(cx, &x2_val); - JS_AddRoot(cx, &y1_val); JS_AddRoot(cx, &y2_val); - - jsuint num_images = 0; - JSObject* images_object = argArray(cx, images_array); - JS_RemoveRoot(cx, &images_array); // unRoot Images Array ! if (images_object == NULL) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); JS_RemoveRoot(cx, &base_obstruction_object); ! JS_ReportError(cx, "Invalid spriteset.images array."); return NULL; } ! if ( JS_GetArrayLength(cx, images_object, &num_images) == JS_FALSE ) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); JS_RemoveRoot(cx, &base_obstruction_object); ! JS_ReportError(cx, "Invalid spriteset.images array length."); return NULL; } ! if (num_images <= 0) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); JS_RemoveRoot(cx, &base_obstruction_object); ! JS_ReportError(cx, "Invalid spriteset.images length"); return NULL; } --- 1212,1309 ---- return NULL; } jsval base_obstruction_val; ! if ( JS_GetProperty(cx, obj, "base", &base_obstruction_val) == JS_FALSE || !JS_AddNamedRoot(cx, &base_obstruction_val, "base_obstruction_val")) { JS_RemoveRoot(cx, &images_array); + JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "spriteset.base object property doesn't appear to exist."); return NULL; } JSObject* base_obstruction_object = argObject(cx, base_obstruction_val); ! if (base_obstruction_object == NULL || !JS_AddNamedRoot(cx, &base_obstruction_object, "base_obstruction_object")) { JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); ! JS_ReportError(cx, "spriteset.base object is not a valid object."); return NULL; } ! // Obtain and Root variable to keep it save from CG ! jsval x1_val, y1_val, x2_val, y2_val; ! if ( ! JS_GetProperty(cx, base_obstruction_object, "x1", &x1_val) == JS_FALSE || !JS_AddRoot(cx, &x1_val) ! || JS_GetProperty(cx, base_obstruction_object, "y1", &y1_val) == JS_FALSE || !JS_AddRoot(cx, &y1_val) ! || JS_GetProperty(cx, base_obstruction_object, "x2", &x2_val) == JS_FALSE || !JS_AddRoot(cx, &x2_val) ! || JS_GetProperty(cx, base_obstruction_object, "y2", &y2_val) == JS_FALSE || !JS_AddRoot(cx, &y2_val) ! ) { + JS_RemoveRoot(cx, &base_obstruction_object); + JS_RemoveRoot(cx, &base_obstruction_val); + JS_RemoveRoot(cx, &images_array); + JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "spriteset.base object is invalid."); return NULL; } ! if (!JSVAL_IS_INT(x1_val) || !JSVAL_IS_INT(y1_val) || !JSVAL_IS_INT(x2_val) || !JSVAL_IS_INT(y2_val)) { ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); ! if (!JSVAL_IS_INT(x1_val)) ! JS_ReportError(cx, "spriteset.base.x1 is invalid"); ! else if (!JSVAL_IS_INT(y1_val)) ! JS_ReportError(cx, "spriteset.base.y1 is invalid"); ! else if (!JSVAL_IS_INT(x2_val)) ! JS_ReportError(cx, "spriteset.base.x2 is invalid"); ! else if (!JSVAL_IS_INT(y2_val)) ! JS_ReportError(cx, "spriteset.base.y2 is invalid"); return NULL; } + int x1 = argInt(cx, x1_val); + int y1 = argInt(cx, y1_val); + int x2 = argInt(cx, x2_val); + int y2 = argInt(cx, y2_val); ! ! jsuint num_images = 0; ! JSObject* images_object = argArray(cx, images_array); ! if (images_object == NULL || !JS_AddNamedRoot(cx, &images_object, "images_object") ) { ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); ! JS_ReportError(cx, "Invalid spriteset.images array."); return NULL; } ! if ( JS_GetArrayLength(cx, images_object, &num_images) == JS_FALSE || (num_images <= 0) ) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); ! if (num_images <= 0) ! JS_ReportError(cx, "Invalid spriteset.images length"); ! else ! JS_ReportError(cx, "Invalid spriteset.images array length."); return NULL; } *************** *** 1286,1293 **** if (images == NULL) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); JS_RemoveRoot(cx, &base_obstruction_object); JS_ReportError(cx, "Cannot allocate space for spriteset.images (%d)", num_images); return NULL; --- 1312,1324 ---- if (images == NULL) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); JS_RemoveRoot(cx, &base_obstruction_object); + JS_RemoveRoot(cx, &base_obstruction_val); + JS_RemoveRoot(cx, &images_array); + JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "Cannot allocate space for spriteset.images (%d)", num_images); return NULL; *************** *** 1303,1310 **** if ( JS_GetElement(cx, images_object, i, &image) == JS_FALSE ) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); JS_ReportError(cx, "Invalid image %d", i); return NULL; --- 1334,1346 ---- if ( JS_GetElement(cx, images_object, i, &image) == JS_FALSE ) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "Invalid image %d", i); return NULL; *************** *** 1315,1322 **** if (ss_image == NULL) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); JS_ReportError(cx, "Invalid image: spriteset.images[%d]", i); delete[] images; --- 1351,1363 ---- if (ss_image == NULL) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "Invalid image: spriteset.images[%d]", i); delete[] images; *************** *** 1327,1348 **** int height = GetImageHeight(ss_image->image); ! if (width <= 0) ! { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_ReportError(cx, "Invalid image width %d at index:%d", width, i); ! delete[] images; ! return NULL; ! } ! ! if (height <= 0) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_ReportError(cx, "Invalid image height %d at index:%d", height, i); delete[] images; return NULL; --- 1368,1383 ---- int height = GetImageHeight(ss_image->image); ! if ( (width <= 0) || (height <= 0)) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); ! JS_ReportError(cx, "Invalid image dimensions: height=%d width=%d at index:%d", height,width, i); delete[] images; return NULL; *************** *** 1352,1360 **** if (!pixels) { ! ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); JS_ReportError(cx, "LockImage failed"); delete[] images; --- 1387,1399 ---- if (!pixels) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "LockImage failed"); delete[] images; *************** *** 1365,1372 **** if (images[i].GetWidth() != width || images[i].GetHeight() != height) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); JS_ReportError(cx, "Temporary image allocation failed"); delete[] images; --- 1404,1416 ---- if (images[i].GetWidth() != width || images[i].GetHeight() != height) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "Temporary image allocation failed"); delete[] images; *************** *** 1374,1377 **** --- 1418,1422 ---- } + // All the other frames should have the same dimensions, so we use the first if (i == 0) { *************** *** 1382,1389 **** if (frame_width != images[i].GetWidth() || frame_width <= 0) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); JS_ReportError(cx, "Invalid frame width %d %d %d", i, frame_width, images[i].GetWidth()); delete[] images; --- 1427,1439 ---- if (frame_width != images[i].GetWidth() || frame_width <= 0) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "Invalid frame width %d %d %d", i, frame_width, images[i].GetWidth()); delete[] images; *************** *** 1393,1400 **** if (frame_height != images[i].GetHeight() || frame_height <= 0) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); JS_ReportError(cx, "Invalid frame height %d %d %d", i, frame_height, images[i].GetHeight()); delete[] images; --- 1443,1455 ---- if (frame_height != images[i].GetHeight() || frame_height <= 0) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "Invalid frame height %d %d %d", i, frame_height, images[i].GetHeight()); delete[] images; *************** *** 1405,1460 **** } - if (!JSVAL_IS_INT(x1_val)) - { - JS_RemoveRoot(cx, &obj); - JS_RemoveRoot(cx, &images_array); - JS_RemoveRoot(cx, &base_obstruction_val); - JS_RemoveRoot(cx, &base_obstruction_object); - JS_ReportError(cx, "spriteset.base.x1 is invalid"); - delete[] images; - return NULL; - } - if (!JSVAL_IS_INT(y1_val)) - { - JS_RemoveRoot(cx, &obj); - JS_RemoveRoot(cx, &images_array); - JS_RemoveRoot(cx, &base_obstruction_val); - JS_RemoveRoot(cx, &base_obstruction_object); - JS_ReportError(cx, "spriteset.base.y1 is invalid"); - delete[] images; - return NULL; - } - if (!JSVAL_IS_INT(x2_val)) - { - JS_RemoveRoot(cx, &obj); - JS_RemoveRoot(cx, &images_array); - JS_RemoveRoot(cx, &base_obstruction_val); - JS_RemoveRoot(cx, &base_obstruction_object); - JS_ReportError(cx, "spriteset.base.x2 is invalid"); - delete[] images; - return NULL; - } - if (!JSVAL_IS_INT(y2_val)) - { - JS_RemoveRoot(cx, &obj); - JS_RemoveRoot(cx, &images_array); - JS_RemoveRoot(cx, &base_obstruction_val); - JS_RemoveRoot(cx, &base_obstruction_object); - JS_ReportError(cx, "spriteset.base.y2 is invalid"); - delete[] images; - return NULL; - } - int x1 = argInt(cx, x1_val); - int y1 = argInt(cx, y1_val); - int x2 = argInt(cx, x2_val); - int y2 = argInt(cx, y2_val); jsval directions_array; ! if ( !JS_GetProperty(cx, obj, "directions", &directions_array) ) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); JS_ReportError(cx, "spriteset.directions array property doesn't appear to exist."); delete[] images; --- 1460,1476 ---- } jsval directions_array; ! if ( !JS_GetProperty(cx, obj, "directions", &directions_array) || !JS_AddNamedRoot(cx, &directions_array, "directions_array")) { ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "spriteset.directions array property doesn't appear to exist."); delete[] images; *************** *** 1466,1473 **** if (!directions_object || !JS_AddRoot(cx, &directions_object)) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); JS_ReportError(cx, "Invalid spriteset.directions array."); delete[] images; --- 1482,1495 ---- if (!directions_object || !JS_AddRoot(cx, &directions_object)) { ! JS_RemoveRoot(cx, &directions_array); ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "Invalid spriteset.directions array."); delete[] images; *************** *** 1476,1499 **** jsuint num_directions = 0; ! if ( JS_GetArrayLength(cx, directions_object, &num_directions) == JS_FALSE ) ! { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &directions_object); ! JS_ReportError(cx, "Invalid spriteset.directions array length."); ! delete[] images; ! return NULL; ! } ! ! if (num_directions <= 0) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &directions_object); ! JS_ReportError(cx, "Invalid spriteset.directions length"); delete[] images; return NULL; --- 1498,1518 ---- jsuint num_directions = 0; ! if ( JS_GetArrayLength(cx, directions_object, &num_directions) == JS_FALSE || (num_directions <= 0)) { ! JS_RemoveRoot(cx, &directions_object); ! JS_RemoveRoot(cx, &directions_array); ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); ! if(num_directions <= 0) ! JS_ReportError(cx, "Invalid spriteset.directions length"); ! else ! JS_ReportError(cx, "Invalid spriteset.directions array length."); delete[] images; return NULL; *************** *** 1503,1511 **** if (s == NULL) { ! JS_RemoveRoot(cx, &obj); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &directions_object); JS_ReportError(cx, "Unable to allocate memory for spriteset"); delete[] images; --- 1522,1536 ---- if (s == NULL) { ! JS_RemoveRoot(cx, &directions_object); ! JS_RemoveRoot(cx, &directions_array); ! JS_RemoveRoot(cx, &images_object); ! JS_RemoveRoot(cx, &x1_val); ! JS_RemoveRoot(cx, &y1_val); ! JS_RemoveRoot(cx, &x2_val); ! JS_RemoveRoot(cx, &y2_val); ! JS_RemoveRoot(cx, &base_obstruction_object); ! JS_RemoveRoot(cx, &base_obstruction_val); ! JS_RemoveRoot(cx, &images_array); ! JS_RemoveRoot(cx, &obj); JS_ReportError(cx, "Unable to allocate memory for spriteset"); delete[] images; *************** *** 1525,1529 **** { ! jsval direction_object_val; if ( !JS_GetElement(cx, directions_object, i, &direction_object_val) ) { --- 1550,1554 ---- { ! jsval direction_object_val; // This is a pointer to a rooted directions_object, and so contains protected information (no need for root) if ( !JS_GetElement(cx, directions_object, i, &direction_object_val) ) { *************** *** 1532,1537 **** } - JSObject* direction_object = JSVAL_TO_OBJECT(direction_object_val); jsval direction_name; if ( JS_GetProperty(cx, direction_object, "name", &direction_name) == JS_FALSE ) --- 1557,1562 ---- } jsval direction_name; + JSObject* direction_object = JSVAL_TO_OBJECT(direction_object_val); if ( JS_GetProperty(cx, direction_object, "name", &direction_name) == JS_FALSE ) *************** *** 1611,1614 **** --- 1636,1652 ---- } + JS_RemoveRoot(cx, &directions_object); + JS_RemoveRoot(cx, &directions_array); + JS_RemoveRoot(cx, &images_object); + JS_RemoveRoot(cx, &x1_val); + JS_RemoveRoot(cx, &y1_val); + JS_RemoveRoot(cx, &x2_val); + JS_RemoveRoot(cx, &y2_val); + JS_RemoveRoot(cx, &base_obstruction_object); + JS_RemoveRoot(cx, &base_obstruction_val); + JS_RemoveRoot(cx, &images_array); + JS_RemoveRoot(cx, &obj); + + return s; } *************** *** 2570,2573 **** --- 2608,2615 ---- /** - Determines if two polygons are colliding + It returns 0 when there is no collision, a positive number if a vertex of A + collides with B and a negative number is a vertex of B collides with A. + 1 and -1 is the first point in the array, and so on. Because the first element + in an array is zero, you need to substract or add 1 to get the element number. */ begin_func(PolygonCollision, 2) *************** *** 2642,2646 **** // Code from: http://www.visibone.com/inpoly/inpoly.c.txt ! bool isinside = false; int inside = 0; int xold = 0; --- 2684,2688 ---- // Code from: http://www.visibone.com/inpoly/inpoly.c.txt ! int isinside = 0; int inside = 0; int xold = 0; *************** *** 2681,2690 **** } ! if (inside) ! isinside = true; } // No need to check for the other one if we already know that we collided ! if (!isinside) { // For each point int pointsB, we will check point-in-poly in polygon pointsA for (unsigned int iB = 0; iB<lengthB; ++iB){ --- 2723,2734 ---- } ! if (inside){ ! isinside = iA+1; ! break; ! } } // No need to check for the other one if we already know that we collided ! if (isinside == 0) { // For each point int pointsB, we will check point-in-poly in polygon pointsA for (unsigned int iB = 0; iB<lengthB; ++iB){ *************** *** 2715,2720 **** } ! if (inside) ! isinside = true; } } --- 2759,2766 ---- } ! if (inside){ ! isinside = -iB-1; ! break; ! } } } *************** *** 2725,2729 **** delete [] pointsA; delete [] pointsB; ! return_bool(isinside); end_func() --- 2771,2775 ---- delete [] pointsA; delete [] pointsB; ! return_int(isinside); end_func() *************** *** 13077,13083 **** //////////////////////////////////////// #if 0 ! ///** ! - draws 'image' onto the surface_object at (x, y) ! //*/ begin_method(SS_SURFACE, ssSurfaceBlitImage, 3) arg_image(image_object); --- 13123,13129 ---- //////////////////////////////////////// #if 0 ! /** ! - [DISABLED] draws 'image' onto the surface_object at (x, y) ! */ begin_method(SS_SURFACE, ssSurfaceBlitImage, 3) arg_image(image_object); *************** *** 13249,13253 **** //////////////////////////////////////// /** ! - Boolean: Tells us if the color aColor is in the surface */ begin_method(SS_SURFACE, ssSurfaceFindColor, 1) --- 13295,13300 ---- //////////////////////////////////////// /** ! - Tells us if the color aColor is in the surface. ! Returns an object containing x and y elements. */ begin_method(SS_SURFACE, ssSurfaceFindColor, 1) |
From: FutureBoyNil <fut...@us...> - 2009-04-16 23:36:43
|
Update of /cvsroot/sphere/sphere/system In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv12159 Modified Files: up_arrow.png down_arrow.png pointer.png system.rfn system.rws Log Message: rws: Softened borders, rfn: Added chars below asciicode 32, changed pointers Index: down_arrow.png =================================================================== RCS file: /cvsroot/sphere/sphere/system/down_arrow.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvs844pbf and /tmp/cvsU1L0Gc differ Index: up_arrow.png =================================================================== RCS file: /cvsroot/sphere/sphere/system/up_arrow.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsWFDpkf and /tmp/cvs5knQQc differ Index: pointer.png =================================================================== RCS file: /cvsroot/sphere/sphere/system/pointer.png,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsfA37si and /tmp/cvsl6fA0f differ Index: system.rfn =================================================================== RCS file: /cvsroot/sphere/sphere/system/system.rfn,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 Binary files /tmp/cvsTMMMOi and /tmp/cvsL44kng differ Index: system.rws =================================================================== RCS file: /cvsroot/sphere/sphere/system/system.rws,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsK9ijdj and /tmp/cvsJXq6Mg differ |
From: FutureBoyNil <fut...@us...> - 2009-04-13 00:53:47
|
Update of /cvsroot/sphere/sphere/source/editor/resources In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv5431/editor/resources Modified Files: toolbar.bmp Log Message: Updated Toolbar graphics Index: toolbar.bmp =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/resources/toolbar.bmp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 Binary files /tmp/cvsHVSgjo and /tmp/cvsPFSuzm differ |
From: FutureBoyNil <fut...@us...> - 2009-04-12 22:20:54
|
Update of /cvsroot/sphere/sphere/source/engine In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19456/engine Modified Files: make_doc_functions.perl Log Message: fixed some generated typo's when if statements are in the parameters Index: make_doc_functions.perl =================================================================== RCS file: /cvsroot/sphere/sphere/source/engine/make_doc_functions.perl,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** make_doc_functions.perl 14 Mar 2009 02:18:01 -0000 1.16 --- make_doc_functions.perl 12 Apr 2009 22:20:41 -0000 1.17 *************** *** 6,12 **** die "Usage: $0 <type>\n" . " e.g. $0 txt > doc_functions.txt\n" ! . " e.g. $0 html > doc_functions.html\n" unless (@ARGV == 1); ! die "type must be either txt or html\n" unless ($ARGV[0] eq "txt" || $ARGV[0] eq "html"); my $output_type = $ARGV[0]; --- 6,13 ---- die "Usage: $0 <type>\n" . " e.g. $0 txt > doc_functions.txt\n" ! . " e.g. $0 html > doc_functions.html\n" ! . " e.g. $0 api |" . 'perl -e "@a=<STDIN>;print sort @a"' . "> scintillasphere.api\n" unless (@ARGV == 1); ! die "type must be either txt or html\n" unless ($ARGV[0] eq "txt" || $ARGV[0] eq "html"|| $ARGV[0] eq "api"); my $output_type = $ARGV[0]; *************** *** 20,23 **** --- 21,28 ---- } + sub is_api { + return $output_type eq "api"; + } + ########################################################### *************** *** 30,34 **** return "<div class=\"$class\">"; } ! return ""; } --- 35,39 ---- return "<div class=\"$class\">"; } ! return " \"" if(is_api()); return ""; } *************** *** 40,44 **** return "</div>\n"; } ! return "\n"; } --- 45,49 ---- return "</div>\n"; } ! return " \"\n" if(is_api()); return "\n"; } *************** *** 54,62 **** $escaped =~ s/</</g; $escaped =~ s/>/>/g; - $escaped =~ s/\\/"/g; return $escaped; } - ########################################################### --- 59,65 ---- *************** *** 320,328 **** } ! print &start_of_line() . "This file is automatically generated, do not edit!" . (&is_html() ? "<br />" : "") . &end_of_line(); foreach my $line (@lines) { my $no_desc_text = 0; if ( $line =~ m/^( +)-/) { --- 323,380 ---- } ! if(!is_api()){ ! print &start_of_line() . "This file is automatically generated, do not edit!" . (&is_html() ? "<br />" : "") . &end_of_line(); ! } ! ! my $constmode=0; foreach my $line (@lines) { my $no_desc_text = 0; + + if ($line =~ /constants\[\]/){ + $constmode = 1; + if (!is_api()) { + print &start_of_line('section') . "*** CONSTANTS ***" . &end_of_line(). (&is_html() ? "</br>" : "") ; + } + } + + if ($constmode && $line =~ /^#/){ + $constmode = 0; + if(is_html()){ + print "<br />"; + }elsif(!is_api()){ + print "\n"; + } + } + + if ($constmode && ($line =~ m/CONSTANT\((.*)\)/)) { + if(is_api()){ + print " \"$1 \"\n"; + }else{ + print &start_of_line('constant') . $1 . &end_of_line('constant') . "\n"; + } + } + + if ($line =~ /^#define\s+(.*)CONSTANT/){ + $constmode = 1; + if (!is_api()) { + print &start_of_line('section') . "*** ${1}CONSTANTS ***" . &end_of_line(). (&is_html() ? "</br>" : "") + } + } + + if ($constmode && ($line =~ m/\/\/(.*)\s*/)) { + if(!is_api()){ + print &start_of_line('constantheader') . $1 . &end_of_line('constantheader') . "\n"; + } + } + + if ($constmode && ($line =~ m/"(.*)"/)) { + if(is_api()){ + print " \"$1 \"\n"; + }else{ + print &start_of_line('constant') . $1 . &end_of_line('constant') . "\n"; + } + } if ( $line =~ m/^( +)-/) { *************** *** 344,351 **** # // section: section_name // if ($line =~ m/\/\/ section: (.*?) \/\//) { print "\n"; print &start_of_line('section') . "*** $1 ***" . &end_of_line(). (&is_html() ? "</br>" : "") ; ! } if ($in_comment == 0 && $in_func == 0 && $in_method == 0 && $in_prop == 0) { --- 396,404 ---- # // section: section_name // + if(!is_api()){ if ($line =~ m/\/\/ section: (.*?) \/\//) { print "\n"; print &start_of_line('section') . "*** $1 ***" . &end_of_line(). (&is_html() ? "</br>" : "") ; ! }} if ($in_comment == 0 && $in_func == 0 && $in_method == 0 && $in_prop == 0) { *************** *** 667,670 **** --- 720,726 ---- $return_type = "ParticleDescendants"; } + elsif ($method_name =~/ssSurfaceFindColor/i) { + $return_type = "Object"; + } else { *************** *** 679,683 **** unless ($func_name eq "name") { ! print function_to_string($func_name, $func_minargs, $desc_text, $return_type, @args, @arg_types) . "\n"; } --- 735,745 ---- unless ($func_name eq "name") { ! if(!is_api()){ ! print function_to_string($func_name, $func_minargs, $desc_text, $return_type, @args, @arg_types) . "\n"; ! }else{ ! grep (s/if\s*\([^\)]*\)\s*//g,@args); ! print ' "'.$func_name . &ssobject_method_to_jsobject_method($method_name)."(".(join(",",@args)).") \"\n"; ! ! } } *************** *** 715,719 **** } ! print method_to_string(&ssobject_name_to_jsobject_name($method_object) . "." . &ssobject_method_to_jsobject_method($method_name), $method_minargs, $desc_text, $return_type, @args, @arg_types) . "\n"; } --- 777,786 ---- } ! if(!is_api()){ ! print method_to_string(&ssobject_name_to_jsobject_name($method_object) . "." . &ssobject_method_to_jsobject_method($method_name), $method_minargs, $desc_text, $return_type, @args, @arg_types) . "\n"; ! }else{ ! grep (s/if\s*\([^\)]*\)\s*//g,@args); ! print " \"".&ssobject_name_to_jsobject_name($method_object) . "." . &ssobject_method_to_jsobject_method($method_name)."(".(join(",",@args)).") \"\n"; ! } } *************** *** 748,754 **** $arg=~s/.*object->//; $arg=~s/->/./; print &start_of_line('property') . "$arg" . &end_of_line('property'); } ! print &start_of_line() . "$desc_text" . &end_of_line(); } --- 815,824 ---- $arg=~s/.*object->//; $arg=~s/->/./; + $arg=~s/\s*$//; print &start_of_line('property') . "$arg" . &end_of_line('property'); } ! if(!is_api()){ ! print &start_of_line() . "$desc_text" . &end_of_line(); ! } } *************** *** 778,783 **** if ($prev_method_object ne $method_object) { ! print "\n"; ! print &start_of_line('jsobject', uc(&ssobject_name_to_jsobject_name($method_object))) . uc(&ssobject_name_to_jsobject_name($method_object)) . &end_of_line('jsobject'); if ($method_object eq "SS_BYTEARRAY") { --- 848,855 ---- if ($prev_method_object ne $method_object) { ! print "\n" unless(is_api()); ! if(!is_api()){ ! print &start_of_line('jsobject', uc(&ssobject_name_to_jsobject_name($method_object))) . uc(&ssobject_name_to_jsobject_name($method_object)) . &end_of_line('jsobject'); ! } if ($method_object eq "SS_BYTEARRAY") { *************** *** 793,796 **** --- 865,881 ---- print &start_of_line('property') . &ssobject_name_to_jsobject_name($method_object).".done" . &end_of_line('property') . "\n"; } + if ($method_object eq "SS_SPRITESET") { + print &start_of_line('property') . &ssobject_name_to_jsobject_name($method_object).".images" . &end_of_line('property') . "\n"; + print &start_of_line('property') . &ssobject_name_to_jsobject_name($method_object).".directions[].name" . &end_of_line('property') . "\n"; + print &start_of_line('property') . &ssobject_name_to_jsobject_name($method_object).".directions[].frames[].index" . &end_of_line('property') . "\n"; + print &start_of_line('property') . &ssobject_name_to_jsobject_name($method_object).".directions[].frames[].delay" . &end_of_line('property') . "\n"; + print &start_of_line('property') . &ssobject_name_to_jsobject_name($method_object).".base.x1" . &end_of_line('property') . "\n"; + print &start_of_line('property') . &ssobject_name_to_jsobject_name($method_object).".base.y1" . &end_of_line('property') . "\n"; + print &start_of_line('property') . &ssobject_name_to_jsobject_name($method_object).".base.x2" . &end_of_line('property') . "\n"; + print &start_of_line('property') . &ssobject_name_to_jsobject_name($method_object).".base.y2" . &end_of_line('property') . "\n"; + } + + + } |
From: FutureBoyNil <fut...@us...> - 2009-04-12 22:20:54
|
Update of /cvsroot/sphere/sphere/source/editor In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv19456/editor Modified Files: scintillasphere.api Log Message: fixed some generated typo's when if statements are in the parameters Index: scintillasphere.api =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/scintillasphere.api,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** scintillasphere.api 8 Apr 2009 00:23:00 -0000 1.2 --- scintillasphere.api 12 Apr 2009 22:20:41 -0000 1.3 *************** *** 401,405 **** "PointSeries(arr,c) " "Polygon(arr,c,invert) " ! "PolygonCollision(arrA,arrB,if (argc > 2) offsetAx,if (argc > 3) offsetAy,if (argc > 4) offsetBx,if (argc > 5) offsetBy) " "QueuePersonCommand(name,command,immediate) " "QueuePersonScript(name,script,immediate) " --- 401,405 ---- "PointSeries(arr,c) " "Polygon(arr,c,invert) " ! "PolygonCollision(arrA,arrB,offsetAx,offsetAy,offsetBx,offsetBy) " "QueuePersonCommand(name,command,immediate) " "QueuePersonScript(name,script,immediate) " *************** *** 492,496 **** "UnbindKey(key) " "UpdateMapEngine() " ! "animation.done" "animation.drawFrame(x,y) " "animation.drawZoomedFrame(x,y,factor) " --- 492,496 ---- "UnbindKey(key) " "UpdateMapEngine() " ! "animation.done " "animation.drawFrame(x,y) " "animation.drawZoomedFrame(x,y,factor) " *************** *** 499,526 **** "animation.getPlaytime() " "animation.getTicks() " ! "animation.height" "animation.readNextFrame() " ! "animation.width" "bytearray.concat(byte_array_to_append) " ! "bytearray.length" "bytearray.slice(start_slice,end_slice) " ! "bytearray[index]" ! "color.alpha" "color.blue " ! "color.green" ! "color.red " "color.toJSON() " ! "colormatrix.bb" ! "colormatrix.bg" ! "colormatrix.bn" ! "colormatrix.br" ! "colormatrix.gb" ! "colormatrix.gg" ! "colormatrix.gn" ! "colormatrix.gr" ! "colormatrix.rb" ! "colormatrix.rg" ! "colormatrix.rn" ! "colormatrix.rr" "colormatrix.toJSON() " "file.close() " --- 499,526 ---- "animation.getPlaytime() " "animation.getTicks() " ! "animation.height " "animation.readNextFrame() " ! "animation.width " "bytearray.concat(byte_array_to_append) " ! "bytearray.length " "bytearray.slice(start_slice,end_slice) " ! "bytearray[index] " ! "color.alpha " "color.blue " ! "color.green " ! "color.red " "color.toJSON() " ! "colormatrix.bb " ! "colormatrix.bg " ! "colormatrix.bn " ! "colormatrix.br " ! "colormatrix.gb " ! "colormatrix.gg " ! "colormatrix.gn " ! "colormatrix.gr " ! "colormatrix.rb " ! "colormatrix.rg " ! "colormatrix.rn " ! "colormatrix.rr " "colormatrix.toJSON() " "file.close() " *************** *** 547,556 **** "image.clone() " "image.createSurface() " ! "image.height" "image.rotateBlit(x,y,radians,blendmode) " "image.rotateBlitMask(x,y,radians,color,blendmode,mask_blendmode) " "image.transformBlit(x1,y1,x2,y2,x3,y3,x4,y4,blendmode) " "image.transformBlitMask(x1,y1,x2,y2,x3,y3,x4,y4,mask,blendmode,mask_blendmode) " ! "image.width" "image.zoomBlit(x,y,factor,blendmode) " "image.zoomBlitMask(x,y,factor,color,blendmode,mask_blendmode) " --- 547,556 ---- "image.clone() " "image.createSurface() " ! "image.height " "image.rotateBlit(x,y,radians,blendmode) " "image.rotateBlitMask(x,y,radians,color,blendmode,mask_blendmode) " "image.transformBlit(x1,y1,x2,y2,x3,y3,x4,y4,blendmode) " "image.transformBlitMask(x1,y1,x2,y2,x3,y3,x4,y4,mask,blendmode,mask_blendmode) " ! "image.width " "image.zoomBlit(x,y,factor,blendmode) " "image.zoomBlitMask(x,y,factor,color,blendmode,mask_blendmode) " *************** *** 661,673 **** "soundeffect.setVolume(volume) " "soundeffect.stop() " ! "spriteset.base.x1" ! "spriteset.base.x2" ! "spriteset.base.y1" ! "spriteset.base.y2" "spriteset.clone() " ! "spriteset.directions[].frames[].delay" ! "spriteset.directions[].frames[].index" ! "spriteset.directions[].name" ! "spriteset.images" "spriteset.save(filename) " "surface.applyColorFX(x,y,w,h,cm) " --- 661,673 ---- "soundeffect.setVolume(volume) " "soundeffect.stop() " ! "spriteset.base.x1 " ! "spriteset.base.x2 " ! "spriteset.base.y1 " ! "spriteset.base.y2 " "spriteset.clone() " ! "spriteset.directions[].frames[].delay " ! "spriteset.directions[].frames[].index " ! "spriteset.directions[].name " ! "spriteset.images " "spriteset.save(filename) " "surface.applyColorFX(x,y,w,h,cm) " *************** *** 696,700 **** "surface.gradientRectangle(x,y,w,h,c1,c2,c3,c4) " "surface.gradientTriangle(x1,y1,x2,y2,x3,y3,c1,c2,c3) " ! "surface.height" "surface.line(x1,y1,x2,y2,c) " "surface.lineSeries(arr,c,type) " --- 696,700 ---- "surface.gradientRectangle(x,y,w,h,c1,c2,c3,c4) " "surface.gradientTriangle(x1,y1,x2,y2,x3,y3,c1,c2,c3) " ! "surface.height " "surface.line(x1,y1,x2,y2,c) " "surface.lineSeries(arr,c,type) " *************** *** 712,716 **** "surface.rotateBlitSurface(surface,x,y,angle) " "surface.save(filename) " ! "surface.setAlpha(alpha,if (argc >= 2) all) " "surface.setBlendMode(mode) " "surface.setPixel(x,y,c) " --- 712,716 ---- "surface.rotateBlitSurface(surface,x,y,angle) " "surface.save(filename) " ! "surface.setAlpha(alpha,all) " "surface.setBlendMode(mode) " "surface.setPixel(x,y,c) " *************** *** 718,722 **** "surface.transformBlitSurface(surface,x1,y1,x2,y2,x3,y3,x4,y4) " "surface.triangle(x1,y1,x2,y2,x3,y3,c) " ! "surface.width" "surface.zoomBlitMaskSurface(surface,x,y,factor,mask) " "surface.zoomBlitSurface(surface,x,y,factor) " --- 718,722 ---- "surface.transformBlitSurface(surface,x1,y1,x2,y2,x3,y3,x4,y4) " "surface.triangle(x1,y1,x2,y2,x3,y3,c) " ! "surface.width " "surface.zoomBlitMaskSurface(surface,x,y,factor,mask) " "surface.zoomBlitSurface(surface,x,y,factor) " |
From: FutureBoyNil <fut...@us...> - 2009-04-08 00:26:38
|
Update of /cvsroot/sphere/sphere/docs/development In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv31060/docs/development Added Files: doc_functions.css Log Message: use make_doc_functions.perl to create the corresponding html --- NEW FILE: doc_functions.css --- a:link { text-decoration: none; } div.section { background-color: #F0E68C; border: thin dashed; } div.jsobject { background-color: #95F08C; border: thin dashed; } div.property { background-color: transparent; font-style: italic; text-indent: 20px; } div.constantheader { font-size: larger; font-style: normal; font-weight: bold; } div.constant { margin-left: 20px; } #id { border: 1px dashed #0000FF; color: #000000; text-align: center; width: 100px; margin: 0px; padding: 4px; } span, span.type_object { font-style: italic; font-weight: bold; color: Blue; } span.type_string { font-style: italic; font-weight: bold; color: Blue; } |
From: FutureBoyNil <fut...@us...> - 2009-04-08 00:23:26
|
Update of /cvsroot/sphere/sphere/source/editor In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv30639/editor Modified Files: scintillasphere.api Log Message: New functions looked up by editor Index: scintillasphere.api =================================================================== RCS file: /cvsroot/sphere/sphere/source/editor/scintillasphere.api,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** scintillasphere.api 26 Mar 2009 01:49:21 -0000 1.1 --- scintillasphere.api 8 Apr 2009 00:23:00 -0000 1.2 *************** *** 1,4 **** - - "ADD " "ALPHA_ONLY " --- 1,2 ---- *************** *** 13,20 **** --- 11,50 ---- "BLEND " "BezierCurve(c,step,x1,y1,x2,y2,x3,y3,x4,y4) " + "BgmGetLength() " + "BgmGetPan() " + "BgmGetPitch() " + "BgmGetPosition() " + "BgmGetRepeat() " + "BgmGetVolume() " + "BgmIsPlaying() " + "BgmIsSeekable() " + "BgmName() " + "BgmPlay() " + "BgmReset() " + "BgmSetPan(pan) " + "BgmSetPitch(pitch) " + "BgmSetPosition(pos) " + "BgmSetRepeat(onoff) " + "BgmSetVolume(volume) " + "BgmStop() " + "BgmValid() " "BindJoystickButton(joystick,button,on_down,on_up) " "BindKey(key,on_down,on_up) " "BlendColors(a,b) " "BlendColorsWeighted(a,b,w1,w2) " + "COMMAND_ANIMATE " + "COMMAND_FACE_EAST " + "COMMAND_FACE_NORTH " + "COMMAND_FACE_NORTHEAST " + "COMMAND_FACE_NORTHWEST " + "COMMAND_FACE_SOUTH " + "COMMAND_FACE_SOUTHEAST " + "COMMAND_FACE_SOUTHWEST " + "COMMAND_FACE_WEST " + "COMMAND_MOVE_EAST " + "COMMAND_MOVE_NORTH " + "COMMAND_MOVE_SOUTH " + "COMMAND_MOVE_WEST " + "COMMAND_WAIT " "CallDefaultMapScript(which) " "CallMapScript(which) " *************** *** 74,78 **** "GetFrameRate(calculate) " "GetGameList() " ! "GetGlobalConfiguration(key) " "GetInputPerson() " "GetJoystickAxis(joy,axis) " --- 104,108 ---- "GetFrameRate(calculate) " "GetGameList() " ! "GetGlobalConfiguration(item) " "GetInputPerson() " "GetJoystickAxis(joy,axis) " *************** *** 108,111 **** --- 138,142 ---- "GetPersonDirection(name) " "GetPersonFrame(name) " + "GetPersonFrameNext(name) " "GetPersonFrameRevert(name) " "GetPersonIgnoreList(name) " *************** *** 119,122 **** --- 150,154 ---- "GetPersonSpriteset(name) " "GetPersonValue(name,key) " + "GetPersonVector(name,historical) " "GetPersonX(name) " "GetPersonXFloat(name) " *************** *** 181,184 **** --- 213,310 ---- "IsPersonVisible(name) " "IsTriggerAt(location_x,location_y,layer) " + "JOYSTICK_AXIS_R " + "JOYSTICK_AXIS_X " + "JOYSTICK_AXIS_Y " + "JOYSTICK_AXIS_Z " + "KEY_0 " + "KEY_1 " + "KEY_2 " + "KEY_3 " + "KEY_4 " + "KEY_5 " + "KEY_6 " + "KEY_7 " + "KEY_8 " + "KEY_9 " + "KEY_A " + "KEY_ALT " + "KEY_APOSTROPHE " + "KEY_B " + "KEY_BACKSLASH " + "KEY_BACKSPACE " + "KEY_C " + "KEY_CAPSLOCK " + "KEY_CLOSEBRACE " + "KEY_COMMA " + "KEY_CTRL " + "KEY_D " + "KEY_DELETE " + "KEY_DOWN " + "KEY_E " + "KEY_END " + "KEY_ENTER " + "KEY_EQUALS " + "KEY_ESCAPE " + "KEY_F " + "KEY_F1 " + "KEY_F10 " + "KEY_F11 " + "KEY_F12 " + "KEY_F2 " + "KEY_F3 " + "KEY_F4 " + "KEY_F5 " + "KEY_F6 " + "KEY_F7 " + "KEY_F8 " + "KEY_F9 " + "KEY_G " + "KEY_H " + "KEY_HOME " + "KEY_I " + "KEY_INSERT " + "KEY_J " + "KEY_K " + "KEY_L " + "KEY_LEFT " + "KEY_M " + "KEY_MINUS " + "KEY_N " + "KEY_NUMLOCK " + "KEY_NUM_0 " + "KEY_NUM_1 " + "KEY_NUM_2 " + "KEY_NUM_3 " + "KEY_NUM_4 " + "KEY_NUM_5 " + "KEY_NUM_6 " + "KEY_NUM_7 " + "KEY_NUM_8 " + "KEY_NUM_9 " + "KEY_O " + "KEY_OPENBRACE " + "KEY_P " + "KEY_PAGEDOWN " + "KEY_PAGEUP " + "KEY_PERIOD " + "KEY_Q " + "KEY_R " + "KEY_RIGHT " + "KEY_S " + "KEY_SCROLLOCK " + "KEY_SEMICOLON " + "KEY_SHIFT " + "KEY_SLASH " + "KEY_SPACE " + "KEY_T " + "KEY_TAB " + "KEY_TILDE " + "KEY_U " + "KEY_UP " + "KEY_V " + "KEY_W " + "KEY_X " + "KEY_Y " + "KEY_Z " "LINE_LOOP " "LINE_MULTIPLE " *************** *** 195,198 **** --- 321,329 ---- "LoadSurface(filename) " "LoadWindowStyle(filename) " + "MOUSE_LEFT " + "MOUSE_MIDDLE " + "MOUSE_RIGHT " + "MOUSE_WHEEL_DOWN " + "MOUSE_WHEEL_UP " "MULTIPLY " "MapEngine(map,fps) " *************** *** 208,211 **** --- 339,355 ---- "OutlinedEllipse(x,y,rx,ry,c) " "OutlinedRectangle(x,y,w,h,c,size) " + "PLAYER_1 " + "PLAYER_2 " + "PLAYER_3 " + "PLAYER_4 " + "PLAYER_KEY_A " + "PLAYER_KEY_B " + "PLAYER_KEY_DOWN " + "PLAYER_KEY_LEFT " + "PLAYER_KEY_MENU " + "PLAYER_KEY_RIGHT " + "PLAYER_KEY_UP " + "PLAYER_KEY_X " + "PLAYER_KEY_Y " "PS_CHILD " "PS_ORIENTATION_EXPLICIT " *************** *** 257,261 **** "PointSeries(arr,c) " "Polygon(arr,c,invert) " ! "PolygonCollision(arrA,arrB) " "QueuePersonCommand(name,command,immediate) " "QueuePersonScript(name,script,immediate) " --- 401,405 ---- "PointSeries(arr,c) " "Polygon(arr,c,invert) " ! "PolygonCollision(arrA,arrB,if (argc > 2) offsetAx,if (argc > 3) offsetAy,if (argc > 4) offsetBx,if (argc > 5) offsetBy) " "QueuePersonCommand(name,command,immediate) " "QueuePersonScript(name,script,immediate) " *************** *** 272,275 **** --- 416,430 ---- "RestartGame() " "SAWTOOTH " + "SCRIPT_COMMAND_GENERATOR " + "SCRIPT_ON_ACTIVATE_TALK " + "SCRIPT_ON_ACTIVATE_TOUCH " + "SCRIPT_ON_CREATE " + "SCRIPT_ON_DESTROY " + "SCRIPT_ON_ENTER_MAP " + "SCRIPT_ON_LEAVE_MAP " + "SCRIPT_ON_LEAVE_MAP_EAST " + "SCRIPT_ON_LEAVE_MAP_NORTH " + "SCRIPT_ON_LEAVE_MAP_SOUTH " + "SCRIPT_ON_LEAVE_MAP_WEST " "SE_MULTIPLE " "SE_SINGLE " *************** *** 303,307 **** "SetPersonData(name,data_object,data.name) " "SetPersonDirection(name,direction) " ! "SetPersonFrame(name,frame) " "SetPersonFrameRevert(name,frames) " "SetPersonIgnoreList(name,array,ignore_list[i]) " --- 458,463 ---- "SetPersonData(name,data_object,data.name) " "SetPersonDirection(name,direction) " ! "SetPersonFrame(name,frame,resetFrameDelay) " ! "SetPersonFrameNext(name,frame) " "SetPersonFrameRevert(name,frames) " "SetPersonIgnoreList(name,array,ignore_list[i]) " *************** *** 330,333 **** --- 486,490 ---- "SetTileSurface(tile,surface) " "SetUpdateScript(script) " + "SetZoneDimensions(zone,x,y,width,height) " "SetZoneLayer(zone,layer) " "Triangle(x1,y1,x2,y2,x3,y3,c) " *************** *** 335,339 **** "UnbindKey(key) " "UpdateMapEngine() " ! "animation.done " "animation.drawFrame(x,y) " "animation.drawZoomedFrame(x,y,factor) " --- 492,496 ---- "UnbindKey(key) " "UpdateMapEngine() " ! "animation.done" "animation.drawFrame(x,y) " "animation.drawZoomedFrame(x,y,factor) " *************** *** 342,369 **** "animation.getPlaytime() " "animation.getTicks() " ! "animation.height " "animation.readNextFrame() " ! "animation.width " "bytearray.concat(byte_array_to_append) " ! "bytearray.length " "bytearray.slice(start_slice,end_slice) " ! "bytearray[index] " ! "color.alpha " "color.blue " ! "color.green " ! "color.red " "color.toJSON() " ! "colormatrix.bb " ! "colormatrix.bg " ! "colormatrix.bn " ! "colormatrix.br " ! "colormatrix.gb " ! "colormatrix.gg " ! "colormatrix.gn " ! "colormatrix.gr " ! "colormatrix.rb " ! "colormatrix.rg " ! "colormatrix.rn " ! "colormatrix.rr " "colormatrix.toJSON() " "file.close() " --- 499,526 ---- "animation.getPlaytime() " "animation.getTicks() " ! "animation.height" "animation.readNextFrame() " ! "animation.width" "bytearray.concat(byte_array_to_append) " ! "bytearray.length" "bytearray.slice(start_slice,end_slice) " ! "bytearray[index]" ! "color.alpha" "color.blue " ! "color.green" ! "color.red " "color.toJSON() " ! "colormatrix.bb" ! "colormatrix.bg" ! "colormatrix.bn" ! "colormatrix.br" ! "colormatrix.gb" ! "colormatrix.gg" ! "colormatrix.gn" ! "colormatrix.gr" ! "colormatrix.rb" ! "colormatrix.rg" ! "colormatrix.rn" ! "colormatrix.rr" "colormatrix.toJSON() " "file.close() " *************** *** 386,409 **** "font.setColorMask(mask) " "font.wordWrapString(string,width) " - "getLengthBgm() " - "getPanBgm() " - "getPitchBgm() " - "getPositionBgm() " - "getRepeatBgm() " - "getVolumeBgm() " "image.blit(x,y,int blendmode) " ! "image.blitMask(x,y,clr,blendmode) " "image.clone() " "image.createSurface() " ! "image.height " "image.rotateBlit(x,y,radians,blendmode) " ! "image.rotateBlitMask(x,y,radians,color,blendmode) " "image.transformBlit(x1,y1,x2,y2,x3,y3,x4,y4,blendmode) " ! "image.transformBlitMask(x1,y1,x2,y2,x3,y3,x4,y4,mask,blendmode) " ! "image.width " "image.zoomBlit(x,y,factor,blendmode) " ! "image.zoomBlitMask(x,y,factor,color,blendmode) " ! "isPlayingBgm() " ! "isSeekableBgm() " "log.beginBlock(name) " "log.endBlock() " --- 543,558 ---- "font.setColorMask(mask) " "font.wordWrapString(string,width) " "image.blit(x,y,int blendmode) " ! "image.blitMask(x,y,col,blendmode,mask_blendmode) " "image.clone() " "image.createSurface() " ! "image.height" "image.rotateBlit(x,y,radians,blendmode) " ! "image.rotateBlitMask(x,y,radians,color,blendmode,mask_blendmode) " "image.transformBlit(x1,y1,x2,y2,x3,y3,x4,y4,blendmode) " ! "image.transformBlitMask(x1,y1,x2,y2,x3,y3,x4,y4,mask,blendmode,mask_blendmode) " ! "image.width" "image.zoomBlit(x,y,factor,blendmode) " ! "image.zoomBlitMask(x,y,factor,color,blendmode,mask_blendmode) " "log.beginBlock(name) " "log.endBlock() " *************** *** 411,416 **** "mapengine.layerAppend(layer_width,layer_height,tile_index) " "mapengine.save(filename) " - "nameBgm() " - "playBgm() " "rawfile.close() " "rawfile.getPosition() " --- 560,563 ---- *************** *** 419,428 **** "rawfile.setPosition(position) " "rawfile.write(data) " - "resetBgm() " - "setPanBgm(pan) " - "setPitchBgm(pitch) " - "setPositionBgm(pos) " - "setRepeatBgm(onoff) " - "setVolumeBgm(volume) " "sfxr.calcSampleSize() " "sfxr.clone() " --- 566,569 ---- *************** *** 488,491 **** --- 629,633 ---- "sfxr.setVibratoSpeed(v) " "sfxr.setWaveType(wavetype) " + "sfxr.toJSON() " "socket.close() " "socket.getPendingReadSize() " *************** *** 519,533 **** "soundeffect.setVolume(volume) " "soundeffect.stop() " ! "spriteset.base.x1 " ! "spriteset.base.x2 " ! "spriteset.base.y1 " ! "spriteset.base.y2 " "spriteset.clone() " ! "spriteset.directions[].frames[].delay " ! "spriteset.directions[].frames[].index " ! "spriteset.directions[].name " ! "spriteset.images " "spriteset.save(filename) " - "stopBgm() " "surface.applyColorFX(x,y,w,h,cm) " "surface.applyColorFX4(x,y,w,h,c1,c2,c3,c4) " --- 661,674 ---- "soundeffect.setVolume(volume) " "soundeffect.stop() " ! "spriteset.base.x1" ! "spriteset.base.x2" ! "spriteset.base.y1" ! "spriteset.base.y2" "spriteset.clone() " ! "spriteset.directions[].frames[].delay" ! "spriteset.directions[].frames[].index" ! "spriteset.directions[].name" ! "spriteset.images" "spriteset.save(filename) " "surface.applyColorFX(x,y,w,h,cm) " "surface.applyColorFX4(x,y,w,h,c1,c2,c3,c4) " *************** *** 555,559 **** "surface.gradientRectangle(x,y,w,h,c1,c2,c3,c4) " "surface.gradientTriangle(x1,y1,x2,y2,x3,y3,c1,c2,c3) " ! "surface.height " "surface.line(x1,y1,x2,y2,c) " "surface.lineSeries(arr,c,type) " --- 696,700 ---- "surface.gradientRectangle(x,y,w,h,c1,c2,c3,c4) " "surface.gradientTriangle(x1,y1,x2,y2,x3,y3,c1,c2,c3) " ! "surface.height" "surface.line(x1,y1,x2,y2,c) " "surface.lineSeries(arr,c,type) " *************** *** 577,586 **** "surface.transformBlitSurface(surface,x1,y1,x2,y2,x3,y3,x4,y4) " "surface.triangle(x1,y1,x2,y2,x3,y3,c) " ! "surface.width " "surface.zoomBlitMaskSurface(surface,x,y,factor,mask) " "surface.zoomBlitSurface(surface,x,y,factor) " "tileset.appendTiles(num_tiles) " "tileset.save(filename) " - "validBgm() " "windowstyle.clone() " "windowstyle.drawWindow(x,y,w,h) " --- 718,726 ---- "surface.transformBlitSurface(surface,x1,y1,x2,y2,x3,y3,x4,y4) " "surface.triangle(x1,y1,x2,y2,x3,y3,c) " ! "surface.width" "surface.zoomBlitMaskSurface(surface,x,y,factor,mask) " "surface.zoomBlitSurface(surface,x,y,factor) " "tileset.appendTiles(num_tiles) " "tileset.save(filename) " "windowstyle.clone() " "windowstyle.drawWindow(x,y,w,h) " |
From: FutureBoyNil <fut...@us...> - 2009-04-07 22:47:12
|
Update of /cvsroot/sphere/sphere/source/particle_engine In directory fdv4jf1.ch3.sourceforge.com:/tmp/cvs-serv13369/particle_engine Modified Files: ScriptInterface.hpp Log Message: Hush a cast warning by rewriting it Index: ScriptInterface.hpp =================================================================== RCS file: /cvsroot/sphere/sphere/source/particle_engine/ScriptInterface.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ScriptInterface.hpp 11 Mar 2009 19:30:05 -0000 1.4 --- ScriptInterface.hpp 7 Apr 2009 22:47:10 -0000 1.5 *************** *** 81,85 **** if (JSVAL_IS_BOOLEAN(result)) ! out_result = JSVAL_TO_BOOLEAN(result); else out_result = true; --- 81,85 ---- if (JSVAL_IS_BOOLEAN(result)) ! out_result = (JSVAL_TRUE == result); else out_result = true; |