This commit is contained in:
Paul 2001-01-29 17:55:07 +00:00
parent 410be002f9
commit e0e6d5d853
6 changed files with 68 additions and 262 deletions

View file

@ -15,6 +15,12 @@ music/chapter2.vh
music/chapter3.pxm music/chapter3.pxm
music/chapter3.vb music/chapter3.vb
music/chapter3.vh music/chapter3.vh
music/chapter4.pxm
music/chapter4.vb
music/chapter4.vh
music/chapter5.pxm
music/chapter5.vb
music/chapter5.vh
music/sb-title.pxm music/sb-title.pxm
music/sb-title.vb music/sb-title.vb
music/sb-title.vh music/sb-title.vh

View file

@ -156,7 +156,7 @@ cleanplayer:
@$(ECHO) Player Cleaned @$(ECHO) Player Cleaned
$(PLAYER_DEP_OUT) : $(PLAYER_DEP_IN) $(PLAYER_DEP_OUT) : $(PLAYER_DEP_IN)
$(MKACTOR3D) $(PLAYER_MOD_IN) -o:$(PLAYER_OUT_DIR) -t:24,1,1 -s:256 $(MKACTOR3D) $(PLAYER_MOD_IN) -o:$(PLAYER_OUT_DIR) -t:24,1,1 -s:128
GFX_DATA_OUT += $(PLAYER_DEP_OUT) GFX_DATA_OUT += $(PLAYER_DEP_OUT)
@ -383,6 +383,7 @@ cleansfx:
$(SFX_ALL_OUT) : $(SFX_ALL_IN) $(SFX_ALL_OUT) : $(SFX_ALL_IN)
$(CP) $(SFX_ALL_IN) $(SFX_OUT_DIR) $(CP) $(SFX_ALL_IN) $(SFX_OUT_DIR)
attrib -r $(SFX_OUT_DIR)/*
GRAF_DIRS_TO_MAKE += $(SFX_OUT_DIR) GRAF_DIRS_TO_MAKE += $(SFX_OUT_DIR)
GFX_DATA_OUT += $(SFX_ALL_OUT) GFX_DATA_OUT += $(SFX_ALL_OUT)
@ -417,7 +418,7 @@ MUSIC_IN_DIR := data/music
MUSIC_OUT_DIR := $(DATA_OUT)/music MUSIC_OUT_DIR := $(DATA_OUT)/music
MUSIC_LIST := sb-title \ MUSIC_LIST := sb-title \
chapter1 chapter2 chapter3 chapter1 chapter2 chapter3 chapter4 chapter5
MUSIC_ALL_IN := $(foreach MUSIC,$(MUSIC_LIST),$(MUSIC_IN_DIR)/$(MUSIC)/$(MUSIC).PXM $(MUSIC_IN_DIR)/$(MUSIC)/$(MUSIC).VH $(MUSIC_IN_DIR)/$(MUSIC)/$(MUSIC).VB) MUSIC_ALL_IN := $(foreach MUSIC,$(MUSIC_LIST),$(MUSIC_IN_DIR)/$(MUSIC)/$(MUSIC).PXM $(MUSIC_IN_DIR)/$(MUSIC)/$(MUSIC).VH $(MUSIC_IN_DIR)/$(MUSIC)/$(MUSIC).VB)
MUSIC_ALL_OUT := $(foreach MUSIC,$(MUSIC_LIST),$(MUSIC_OUT_DIR)/$(MUSIC).PXM $(MUSIC_OUT_DIR)/$(MUSIC).VH $(MUSIC_OUT_DIR)/$(MUSIC).VB) MUSIC_ALL_OUT := $(foreach MUSIC,$(MUSIC_LIST),$(MUSIC_OUT_DIR)/$(MUSIC).PXM $(MUSIC_OUT_DIR)/$(MUSIC).VH $(MUSIC_OUT_DIR)/$(MUSIC).VB)

View file

@ -110,11 +110,6 @@
Vars Vars
---- */ ---- */
static FontBank s_fontBank; static FontBank s_fontBank;
static CScrollyBackground *s_bg1;
static CScrollyBackground *s_bg2;
static CScrollyBackground *s_bg3;
//CScript *testScript;
/*---------------------------------------------------------------------- /*----------------------------------------------------------------------
@ -123,146 +118,12 @@ static CScrollyBackground *s_bg3;
Params: Params:
Returns: Returns:
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
/*
unsigned int str=STR__PAULS_TEST_STRING_1;
int w=150;
int h=40;
CGUITextReadout::TextReadoutData onOffTextReadouts[]=
{
{ false, STR__ON, },
{ true, STR__OFF, },
{ 0, 0, },
};
CGUISpriteReadout::SpriteReadoutData onOffSpriteReadouts[]=
{
{ false, FRM__CROSS, },
{ true, FRM__TICK, },
{ 0, 0, },
};
int musicStatus=false;
int sfxStatus=false;
int readyToExit=false;
int musicVol=0;
char textEntry[16+1]="SOME TEXT";
CGUIControlFrame *baseGUIObject;
*/
void CPaulScene::init() void CPaulScene::init()
{ {
s_fontBank.initialise(&standardFont); s_fontBank.initialise(&standardFont);
s_fontBank.setColour(255,255,255); s_fontBank.setColour(255,255,255);
/* CSoundMediator::setSfxBank(CSoundMediator::SFX_INGAME);
CGUIGroupFrame *fr;
CGUITextBox *tb;
CGUIToggleButton *tg;
CGUITextReadout *tr;
CGUISpriteReadout *sr;
CGUIBarReadout *br;
CGUISliderButton *sl;
CGUITextEntry *te;
int mem=MainRam.TotalRam-MainRam.RamUsed;
PAUL_DBGMSG("initial mem free=%d",mem);
baseGUIObject=new ("Uber GUI object") CGUIControlFrame();
baseGUIObject->init(NULL);
baseGUIObject->setObjectXYWH(32,32,512-64,256-64);
fr=new ("frame") CGUIGroupFrame();
fr->init(baseGUIObject);
fr->setObjectXYWH(10,10,448-20,30);
tb=new ("textbox") CGUITextBox();
tb->init(fr);
tb->setObjectXYWH(0,0,300,30);
tb->setText(STR__PAULS_TEST__MUSIC);
tg=new ("togglebutton") CGUIToggleButton();
tg->init(fr);
tg->setButtonTarget(&musicStatus);
tr=new ("textreadout") CGUITextReadout();
tr->init(fr);
tr->setObjectXYWH(300,0,128,30);
tr->setReadoutTarget(&musicStatus);
tr->setReadoutData(onOffTextReadouts);
fr=new ("frame") CGUIGroupFrame();
fr->init(baseGUIObject);
fr->setObjectXYWH(10,50,448-20,30);
tb=new ("textbox") CGUITextBox();
tb->init(fr);
tb->setObjectXYWH(0,0,300,30);
tb->setText(STR__PAULS_TEST__SFX);
tg=new ("togglebutton") CGUIToggleButton();
tg->init(fr);
tg->setButtonTarget(&sfxStatus);
sr=new ("spritereadout") CGUISpriteReadout();
sr->init(fr);
sr->setObjectXYWH(300,0,128,30);
sr->setReadoutTarget(&sfxStatus);
sr->setReadoutData(onOffSpriteReadouts);
fr=new ("frame") CGUIGroupFrame();
fr->init(baseGUIObject);
fr->setObjectXYWH(10,90,448-20,30);
sl=new("sliderbutton") CGUISliderButton();
sl->init(fr);
sl->setButtonTarget(&musicVol);
sl->setButtonRange(0,255);
br=new ("spritereadout") CGUIBarReadout();
br->init(fr);
br->setObjectXYWH(0,0,448-20,30);
br->setReadoutTarget(&musicVol);
br->setReadoutRange(0,255);
fr=new ("frame") CGUIGroupFrame();
fr->init(baseGUIObject);
fr->setObjectXYWH(10,155,200,30);
tb=new ("textbox") CGUITextBox();
tb->init(fr);
tb->setObjectXYWH(0,0,200,30);
tb->setText(STR__PAULS_TEST__EXIT);
tg=new ("togglebutton") CGUIToggleButton();
tg->init(fr);
tg->setButtonTarget(&readyToExit);
fr=new ("frame") CGUIGroupFrame();
fr->init(baseGUIObject);
fr->setObjectXYWH(220,155,200,30);
te=new ("textentry") CGUITextEntry();
te->init(fr);
te->setObjectXYWH(0,0,200,30);
te->setTextDetails(textEntry,16);
baseGUIObject->select();
// Heh.. this'll actually work =)
//ASSERT(0);
// baseGUIObject->shutdown();
// baseGUIObject=0;
PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
s_bg1=new ("scrolly background") CScrollyBackground();
s_bg1->init();
s_bg1->setSpeed(+2,+2);
s_bg2=new ("scrolly background") CScrollyBackground();
s_bg2->init();
s_bg2->setSpeed(-2,0);
s_bg2->setOt(1001);
s_bg3=new ("scrolly background") CScrollyBackground();
s_bg3->init();
s_bg3->setSpeed(0,-2);
s_bg3->setOt(1002);
*/
// testScript->initialise(SCRIPTS_TEST_DAT);
} }
@ -275,12 +136,7 @@ PAUL_DBGMSG("change=%d",mem-(MainRam.TotalRam-MainRam.RamUsed));
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
void CPaulScene::shutdown() void CPaulScene::shutdown()
{ {
/*
s_bg3->shutdown();
s_bg2->shutdown();
s_bg1->shutdown();
s_fontBank.dump(); s_fontBank.dump();
*/
} }
@ -306,27 +162,6 @@ void CPaulScene::render()
y+=charHeight; y+=charHeight;
} }
} }
// if(testScript->isFinished())
// {
// if(PadGetDown(0)&PAD_START)
// {
// testScript->reset();
// }
// }
// else
// {
// testScript->run();
// }
/*
if(baseGUIObject)
baseGUIObject->render();
s_bg1->render();
s_bg2->render();
s_bg3->render();
*/
} }
@ -336,6 +171,7 @@ void CPaulScene::render()
Params: Params:
Returns: Returns:
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
int sfxNum=0;
void CPaulScene::think(int _frames) void CPaulScene::think(int _frames)
{ {
if(PadGetHeld(0)&PAD_R1&&PadGetDown(0)&PAD_R2) if(PadGetHeld(0)&PAD_R1&&PadGetDown(0)&PAD_R2)
@ -343,71 +179,21 @@ void CPaulScene::think(int _frames)
showDebugLog=!showDebugLog; showDebugLog=!showDebugLog;
} }
/* int pad=PadGetDown(1);
if(readyToExit) if(pad&PAD_CIRCLE)
{ {
baseGUIObject->shutdown(); CSoundMediator::playSfx((CSoundMediator::SFXID)sfxNum);
delete baseGUIObject; }
baseGUIObject=NULL; else if(pad&PAD_UP)
readyToExit=0; {
if(++sfxNum>7)sfxNum=7;
}
else if(pad&PAD_DOWN)
{
if(--sfxNum<0)sfxNum=0;
} }
if(baseGUIObject)
baseGUIObject->think(_frames);
s_bg1->think(_frames);
s_bg2->think(_frames);
s_bg3->think(_frames);
*/
} }
/*=========================================================================== /*===========================================================================
end */ end */
/*
BubicleEmitterData bubData=
{
206,200,60,60, // m_x,m_y,m_w,m_h
10,1, // m_birthRate,m_birthAmount
-1, // m_life
{ // m_bubicleBase
100, // m_life
0,0,0, // m_vx,m_vdx,m_vxmax
-40,-15,-100, // m_vy,m_vdy,m_vymax
13,10, // m_w,m_h
10, // m_dvSizeChange
0,100, // m_theta,m_vtheta
100,2,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth
40, // m_ot
{ 128,128,128, } // m_colour
},
{ // m_bubicleRange
100, // m_life
0,0,0, // m_vx,m_vdx,m_vxmax
20,10,0, // m_vy,m_vdy,m_vymax
5,5, // m_w,m_h
10, // m_dvSizeChange
4095,50, // m_theta,m_vtheta
100,5,0, // m_wobbleWidth,m_vwobbleWidth,m_vdwobbleWidth
0, // m_ot
{ 0, 64,127, } // m_colour
}
};
CBubicleEmitter *testBub;
CBubicleFactory::init();
testBub=CBubicleFactory::spawnEmitter(&bubData);
CBubicleFactory::shutdown();
testBub->setPos(X,Y);
CBubicleFactory::render();
CBubicleFactory::think();
*/

View file

@ -61,9 +61,12 @@
CPlayerStateIdle::IdleAnims CPlayerStateIdle::s_idleAnims[]= CPlayerStateIdle::IdleAnims CPlayerStateIdle::s_idleAnims[]=
{ {
// start frame loop frame end frame loop count // start frame loop frame end frame loop count
{ -1, ANIM_PLAYER_ANIM_IDLEGENERIC04, -1, 4 }, // { -1, ANIM_PLAYER_ANIM_IDLEGENERIC04, -1, 4 },
{ -1, ANIM_PLAYER_ANIM_IDLEGENERIC04, -1, 10 }, // { -1, ANIM_PLAYER_ANIM_IDLEGENERIC04, -1, 10 },
{ -1, ANIM_PLAYER_ANIM_IDLEGENERIC03, -1, 3 }, // { -1, ANIM_PLAYER_ANIM_IDLEGENERIC03, -1, 3 },
{ -1, ANIM_PLAYER_ANIM_IDLEBOOTS, -1, 4 },
{ -1, ANIM_PLAYER_ANIM_IDLECORAL, -1, 10 },
{ -1, ANIM_PLAYER_ANIM_WAKEUP, -1, 1 },
}; };
int CPlayerStateIdle::s_numIdleAnims=sizeof(CPlayerStateIdle::s_idleAnims)/sizeof(CPlayerStateIdle::IdleAnims); int CPlayerStateIdle::s_numIdleAnims=sizeof(CPlayerStateIdle::s_idleAnims)/sizeof(CPlayerStateIdle::IdleAnims);

View file

@ -95,6 +95,7 @@ static CXMPlaySound *s_xmplaySound;
// Songs // Songs
static XMSONGDATA s_xmSongData[CSoundMediator::NUM_SONGIDS]= static XMSONGDATA s_xmSongData[CSoundMediator::NUM_SONGIDS]=
{ {
// m_vh m_vb m_pxm m_startPattern;
{ MUSIC_SB_TITLE_VH, MUSIC_SB_TITLE_VB, MUSIC_SB_TITLE_PXM, 0x00 }, // SONG_TITLE { MUSIC_SB_TITLE_VH, MUSIC_SB_TITLE_VB, MUSIC_SB_TITLE_PXM, 0x00 }, // SONG_TITLE
{ MUSIC_SB_TITLE_VH, MUSIC_SB_TITLE_VB, MUSIC_SB_TITLE_PXM, 0x0a }, // SONG_OPTIONS { MUSIC_SB_TITLE_VH, MUSIC_SB_TITLE_VB, MUSIC_SB_TITLE_PXM, 0x0a }, // SONG_OPTIONS
{ MUSIC_SB_TITLE_VH, MUSIC_SB_TITLE_VB, MUSIC_SB_TITLE_PXM, 0x13 }, // SONG_MEMORYCARD { MUSIC_SB_TITLE_VH, MUSIC_SB_TITLE_VB, MUSIC_SB_TITLE_PXM, 0x13 }, // SONG_MEMORYCARD
@ -116,27 +117,44 @@ static XMSONGDATA s_xmSongData[CSoundMediator::NUM_SONGIDS]=
{ MUSIC_CHAPTER3_VH, MUSIC_CHAPTER3_VB, MUSIC_CHAPTER3_PXM, 0x0b }, // SONG_CHAPTER3_LEVEL4, { MUSIC_CHAPTER3_VH, MUSIC_CHAPTER3_VB, MUSIC_CHAPTER3_PXM, 0x0b }, // SONG_CHAPTER3_LEVEL4,
{ MUSIC_CHAPTER3_VH, MUSIC_CHAPTER3_VB, MUSIC_CHAPTER3_PXM, 0x21 }, // SONG_CHAPTER3_BOSS_ASLEEP, { MUSIC_CHAPTER3_VH, MUSIC_CHAPTER3_VB, MUSIC_CHAPTER3_PXM, 0x21 }, // SONG_CHAPTER3_BOSS_ASLEEP,
{ MUSIC_CHAPTER3_VH, MUSIC_CHAPTER3_VB, MUSIC_CHAPTER3_PXM, 0x22 }, // SONG_CHAPTER3_BOSS_AWAKE, { MUSIC_CHAPTER3_VH, MUSIC_CHAPTER3_VB, MUSIC_CHAPTER3_PXM, 0x22 }, // SONG_CHAPTER3_BOSS_AWAKE,
{ MUSIC_CHAPTER4_VH, MUSIC_CHAPTER4_VB, MUSIC_CHAPTER4_PXM, 0x1b }, // SONG_CHAPTER4_LEVEL1,
{ MUSIC_CHAPTER4_VH, MUSIC_CHAPTER4_VB, MUSIC_CHAPTER4_PXM, 0x00 }, // SONG_CHAPTER4_LEVEL2,
{ MUSIC_CHAPTER4_VH, MUSIC_CHAPTER4_VB, MUSIC_CHAPTER4_PXM, 0x2c }, // SONG_CHAPTER4_LEVEL3,
{ MUSIC_CHAPTER4_VH, MUSIC_CHAPTER4_VB, MUSIC_CHAPTER4_PXM, 0x00 }, // SONG_CHAPTER4_LEVEL4,
{ MUSIC_CHAPTER4_VH, MUSIC_CHAPTER4_VB, MUSIC_CHAPTER4_PXM, 0x3c }, // SONG_CHAPTER4_BOSS,
{ MUSIC_CHAPTER5_VH, MUSIC_CHAPTER5_VB, MUSIC_CHAPTER5_PXM, 0x00 }, // SONG_CHAPTER5_LEVEL1,
{ MUSIC_CHAPTER5_VH, MUSIC_CHAPTER5_VB, MUSIC_CHAPTER5_PXM, 0x14 }, // SONG_CHAPTER5_LEVEL2,
{ MUSIC_CHAPTER5_VH, MUSIC_CHAPTER5_VB, MUSIC_CHAPTER5_PXM, 0x00 }, // SONG_CHAPTER5_LEVEL3,
{ MUSIC_CHAPTER5_VH, MUSIC_CHAPTER5_VB, MUSIC_CHAPTER5_PXM, 0x2a }, // SONG_CHAPTER5_LEVEL4,
{ MUSIC_CHAPTER5_VH, MUSIC_CHAPTER5_VB, MUSIC_CHAPTER5_PXM, 0x3e }, // SONG_CHAPTER5_BOSS,
}; };
// SFX banks // SFX banks
static XMSFXFILEDATA s_xmSfxData[CSoundMediator::NUM_SFXBANKIDS]= static XMSFXFILEDATA s_xmSfxData[CSoundMediator::NUM_SFXBANKIDS]=
{ {
// m_vh m_vb m_pxm
{ SFX_INGAME_VH, SFX_INGAME_VB, SFX_INGAME_PXM }, // SFX_INGAME { SFX_INGAME_VH, SFX_INGAME_VB, SFX_INGAME_PXM }, // SFX_INGAME
}; };
// Individual SFX details // Individual SFX details
static SFXDETAILS s_sfxDetails[]= static SFXDETAILS s_sfxDetails[CSoundMediator::NUM_SFXIDS]=
{ {
{ 1, 6, 1 }, // m_channelMask m_pattern m_looping
{ 1, 4, 0 }, { 1, 0, 0 }, // SFX_TEST0
{ 1, 5, 0 }, { 1, 1, 0 }, // SFX_TEST1
{ 1, 0, 1 }, { 1, 2, 0 }, // SFX_TEST2
{ 1, 3, 0 }, // SFX_TEST3
{ 1, 4, 0 }, // SFX_TEST4
{ 1, 5, 0 }, // SFX_TEST5
{ 1, 6, 0 }, // SFX_TEST6
{ 1, 7, 0 }, // SFX_TEST7
}; };
// Reverb details // Reverb details
static ReverbDetails s_reverbDetails[CSoundMediator::NUM_REVERBTYPES]= static ReverbDetails s_reverbDetails[CSoundMediator::NUM_REVERBTYPES]=
{ {
// m_type m_delay m_depth m_feedback
{ SPU_REV_MODE_OFF, 0, 0, 0 }, // REV_NONE { SPU_REV_MODE_OFF, 0, 0, 0 }, // REV_NONE
{ SPU_REV_MODE_ECHO, 75, 0x3000, 100 }, // REV_ECHOTEST { SPU_REV_MODE_ECHO, 75, 0x3000, 100 }, // REV_ECHOTEST
}; };
@ -372,7 +390,7 @@ void CSoundMediator::setSfxBank(SFXBANKID _bankId)
same time as *lots* of other sfx. same time as *lots* of other sfx.
Returns: Returns:
---------------------------------------------------------------------- */ ---------------------------------------------------------------------- */
xmPlayingId CSoundMediator::playSfx(int _sfxId,int _lock=false) xmPlayingId CSoundMediator::playSfx(SFXID _sfxId,int _lock=false)
{ {
int sfxChannelMask; int sfxChannelMask;
xmPlayingId playId; xmPlayingId playId;

View file

@ -49,34 +49,26 @@ class CSoundMediator
public: public:
typedef enum SONGID typedef enum SONGID
{ {
SONG_TITLE, SONG_TITLE, SONG_OPTIONS, SONG_MEMORYCARD, SONG_GAMECOMPLETE, SONG_GAMEOVER,
SONG_OPTIONS, SONG_CHAPTER1_LEVEL1, SONG_CHAPTER1_LEVEL2, SONG_CHAPTER1_LEVEL3, SONG_CHAPTER1_LEVEL4, SONG_CHAPTER1_BOSS,
SONG_MEMORYCARD, SONG_CHAPTER2_LEVEL1, SONG_CHAPTER2_LEVEL2, SONG_CHAPTER2_LEVEL3, SONG_CHAPTER2_LEVEL4, SONG_CHAPTER2_BOSS,
SONG_GAMECOMPLETE, SONG_CHAPTER3_LEVEL1, SONG_CHAPTER3_LEVEL2, SONG_CHAPTER3_LEVEL3, SONG_CHAPTER3_LEVEL4, SONG_CHAPTER3_BOSS_ALSEEP, SONG_CHAPTER3_BOSS_AWAKE,
SONG_GAMEOVER, SONG_CHAPTER4_LEVEL1, SONG_CHAPTER4_LEVEL2, SONG_CHAPTER4_LEVEL3, SONG_CHAPTER4_LEVEL4, SONG_CHAPTER4_BOSS,
SONG_CHAPTER1_LEVEL1, SONG_CHAPTER5_LEVEL1, SONG_CHAPTER5_LEVEL2, SONG_CHAPTER5_LEVEL3, SONG_CHAPTER5_LEVEL4, SONG_CHAPTER5_BOSS,
SONG_CHAPTER1_LEVEL2,
SONG_CHAPTER1_LEVEL3,
SONG_CHAPTER1_LEVEL4,
SONG_CHAPTER1_BOSS,
SONG_CHAPTER2_LEVEL1,
SONG_CHAPTER2_LEVEL2,
SONG_CHAPTER2_LEVEL3,
SONG_CHAPTER2_LEVEL4,
SONG_CHAPTER2_BOSS,
SONG_CHAPTER3_LEVEL1,
SONG_CHAPTER3_LEVEL2,
SONG_CHAPTER3_LEVEL3,
SONG_CHAPTER3_LEVEL4,
SONG_CHAPTER3_BOSS_ALSEEP,
SONG_CHAPTER3_BOSS_AWAKE,
NUM_SONGIDS, NUM_SONGIDS,
}; };
typedef enum SFXBANKID typedef enum SFXBANKID
{ {
SFX_INGAME, SFX_INGAME,
NUM_SFXBANKIDS, NUM_SFXBANKIDS,
}; };
typedef enum SFXID
{
SFX_TEST0, SFX_TEST1, SFX_TEST2, SFX_TEST3,
SFX_TEST4, SFX_TEST5, SFX_TEST6, SFX_TEST7,
NUM_SFXIDS,
};
typedef enum VOLUMETYPE typedef enum VOLUMETYPE
{ {
@ -119,7 +111,7 @@ public:
// SFX interface // SFX interface
static void setSfxBank(SFXBANKID _bankId); static void setSfxBank(SFXBANKID _bankId);
static xmPlayingId playSfx(int _sfxId,int _lock=false); static xmPlayingId playSfx(SFXID _sfxId,int _lock=false);
static void setposition(xmPlayingId _playingId,VECTOR *pos); static void setposition(xmPlayingId _playingId,VECTOR *pos);
static void stopSfx(xmPlayingId _playingId); static void stopSfx(xmPlayingId _playingId);