Caused by commit Kester 7 weeks ago, adding sound actuator always crashes
when no sounds have been loaded. He forgot to put a MEM_Free within the
brackets. :)
This commit is contained in:
2004-07-28 10:01:22 +00:00
parent fc362f9538
commit 95eb490d0d

View File

@@ -1613,29 +1613,25 @@ static short draw_actuatorbuttons(bActuator *act, uiBlock *block, short xco, sho
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
if(G.main->sound.first)
{
if(G.main->sound.first) {
IDnames_to_pupstring(&str, "Sound files", NULL, &(G.main->sound), (ID *)sa->sound, &(sa->sndnr));
/* reset this value, it is for handling the event */
sa->sndnr = 0;
uiDefButS(block, MENU, B_SOUNDACT_BROWSE, str, xco+10,yco-22,20,19, &(sa->sndnr), 0, 0, 0, 0, "");
if(sa->sound)
{
if(sa->sound) {
char dummy_str[] = "Sound mode %t|Play Stop %x0|Play End %x1|Loop Stop %x2|Loop End %x3|Loop Ping Pong Stop %x5|Loop Ping Pong %x4";
uiDefBut(block, TEX, B_IDNAME, "SO:",xco+30,yco-22,width-40,19, sa->sound->id.name+2, 0.0, 18.0, 0, 0, "");
uiDefButS(block, MENU, 1, dummy_str,xco+10,yco-44,width-20, 19, &sa->type, 0.0, 0.0, 0, 0, "");
uiDefButF(block, NUM, 0, "Volume:", xco+10,yco-66,wval, 19, &sa->sound->volume, 0.0, 1.0, 0, 0, "Sets the volume of this sound");
uiDefButF(block, NUM, 0, "Pitch:",xco+wval+10,yco-66,wval, 19, &sa->sound->pitch,-12.0, 12.0, 0, 0, "Sets the pitch of this sound");
}
MEM_freeN(str);
}
else
{
else {
uiDefBut(block, LABEL, 0, "Use Sound window (F10) to load samples", xco, yco-24, width, 19, NULL, 0, 0, 0, 0, "");
}
MEM_freeN(str);
yco-= ysize;
break;
@@ -1646,31 +1642,26 @@ static short draw_actuatorbuttons(bActuator *act, uiBlock *block, short xco, sho
"Volume %x3|Stop %x4|Pause %x5|Resume %x6";
cda = act->data;
if (cda)
{
if (cda->track == 0)
{
if (cda) {
if (cda->track == 0) {
cda->track = 1;
cda->volume = 1;
cda->type = ACT_CD_PLAY_ALL;
}
if (cda->type == ACT_CD_PLAY_TRACK || cda->type == ACT_CD_LOOP_TRACK)
{
if (cda->type == ACT_CD_PLAY_TRACK || cda->type == ACT_CD_LOOP_TRACK) {
ysize = 48;
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
uiDefButS(block, NUM, 0, "Track:", xco+10,yco-44,width-20, 19, &cda->track, 1, 99, 0, 0, "Select the track to be played");
}
else if (cda->type == ACT_CD_VOLUME)
{
else if (cda->type == ACT_CD_VOLUME) {
ysize = 48;
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
uiDefButF(block, NUM, 0, "Volume:", xco+10,yco-44,width-20, 19, &cda->volume, 0, 1, 0, 0, "Set the volume for CD playback");
}
else
{
else {
ysize = 28;
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);