Migrated the GraphicsLock to an ordinary mutex; it is used exclusively

for maintaining critical sections.


git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@1253 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
mcmartin
2003-09-20 07:38:23 +00:00
parent 3e17b20d47
commit 51aa717fc6
54 changed files with 642 additions and 640 deletions
+1
View File
@@ -1,4 +1,5 @@
Changes towards version 0.4: Changes towards version 0.4:
- Downgraded the GraphicsLock to an ordinary Mutex -Michael
- Extra fallback for the unlikely situation that $HOME isn't set on a - Extra fallback for the unlikely situation that $HOME isn't set on a
unix system. (#493) - SvdB unix system. (#493) - SvdB
- Accept spaces in --contentdir argument (#492) - SvdB - Accept spaces in --contentdir argument (#492) - SvdB
+4 -4
View File
@@ -163,7 +163,7 @@ Battle (void)
extern SIZE InitShips (void); extern SIZE InitShips (void);
void UninitShips (void); void UninitShips (void);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetResourceIndex (hResIndex); SetResourceIndex (hResIndex);
@@ -222,7 +222,7 @@ Battle (void)
ScreenTransition (3, &r); ScreenTransition (3, &r);
} }
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (nth_frame) if (nth_frame)
TaskSwitch (); TaskSwitch ();
else else
@@ -231,7 +231,7 @@ Battle (void)
NextTime = GetTimeCounter (); NextTime = GetTimeCounter ();
} }
ProcessInput (); ProcessInput ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} while (GLOBAL (CurrentActivity) & IN_BATTLE); } while (GLOBAL (CurrentActivity) & IN_BATTLE);
AbortBattle: AbortBattle:
@@ -242,7 +242,7 @@ AbortBattle:
UninitShips (); UninitShips ();
FreeBattleSong (); FreeBattleSong ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (num_ships < 0); return (num_ships < 0);
} }
+2 -2
View File
@@ -40,7 +40,7 @@ DrawSISFrame (void)
{ {
RECT r; RECT r;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
BatchGraphics (); BatchGraphics ();
@@ -186,6 +186,6 @@ DrawSISFrame (void)
ClearSISRect (DRAW_SIS_DISPLAY); ClearSISRect (DRAW_SIS_DISPLAY);
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
+4 -4
View File
@@ -205,10 +205,10 @@ ActivateStarShip (COUNT which_ship, SIZE state)
if (ShipRemoved) if (ShipRemoved)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (UNDEFINED_DELTA, DeltaSISGauges (UNDEFINED_DELTA,
UNDEFINED_DELTA, UNDEFINED_DELTA); UNDEFINED_DELTA, UNDEFINED_DELTA);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
} }
@@ -293,10 +293,10 @@ ActivateStarShip (COUNT which_ship, SIZE state)
); );
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (UNDEFINED_DELTA, DeltaSISGauges (UNDEFINED_DELTA,
UNDEFINED_DELTA, UNDEFINED_DELTA); UNDEFINED_DELTA, UNDEFINED_DELTA);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (i); return (i);
} }
break; break;
+4 -4
View File
@@ -89,7 +89,7 @@ int clock_task_func(void* data)
} }
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (NULL_PTR); DrawStatusMessage (NULL_PTR);
{ {
HEVENT hEvent; HEVENT hEvent;
@@ -114,7 +114,7 @@ int clock_task_func(void* data)
FreeEvent (hEvent); FreeEvent (hEvent);
} }
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
OnAutoPilot = (BOOLEAN)( OnAutoPilot = (BOOLEAN)(
@@ -126,7 +126,7 @@ int clock_task_func(void* data)
{ {
DWORD num_ticks; DWORD num_ticks;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
num_ticks = GetTimeCounter () - LastTime; num_ticks = GetTimeCounter () - LastTime;
if (!OnAutoPilot) if (!OnAutoPilot)
{ {
@@ -159,7 +159,7 @@ int clock_task_func(void* data)
cycle_index = (cycle_index + 1) % NUM_CYCLES; cycle_index = (cycle_index + 1) % NUM_CYCLES;
delay_count = NUM_DELAYS; delay_count = NUM_DELAYS;
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LastPilot = OnAutoPilot; LastPilot = OnAutoPilot;
LastTime += num_ticks; LastTime += num_ticks;
+64 -64
View File
@@ -870,10 +870,10 @@ int ambient_anim_task(void* data)
while ((CommFrame = CommData.AlienFrame) == 0 && !Task_ReadState (task, TASK_EXIT)) while ((CommFrame = CommData.AlienFrame) == 0 && !Task_ReadState (task, TASK_EXIT))
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
memset ((PSTR)&DisplayArray[0], 0, sizeof (DisplayArray)); memset ((PSTR)&DisplayArray[0], 0, sizeof (DisplayArray));
SetUpSequence (Sequencer); SetUpSequence (Sequencer);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
ActiveMask = 0; ActiveMask = 0;
TalkAlarm = 0; TalkAlarm = 0;
@@ -902,7 +902,7 @@ int ambient_anim_task(void* data)
SleepThreadUntil (LastTime + ONE_SECOND / 120); SleepThreadUntil (LastTime + ONE_SECOND / 120);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BatchGraphics (); BatchGraphics ();
CurTime = GetTimeCounter (); CurTime = GetTimeCounter ();
ElapsedTicks = CurTime - LastTime; ElapsedTicks = CurTime - LastTime;
@@ -1288,7 +1288,7 @@ int ambient_anim_task(void* data)
UpdateSpeechGraphics (FALSE); UpdateSpeechGraphics (FALSE);
} }
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
xform_PLUT_step(ElapsedTicks); xform_PLUT_step(ElapsedTicks);
} }
FinishTask (task); FinishTask (task);
@@ -1320,15 +1320,15 @@ SpewPhrases (COUNT wait_track)
if (wait_track == 1 || wait_track == (COUNT)~0) if (wait_track == 1 || wait_track == (COUNT)~0)
{ {
ResumeTrack (); ResumeTrack ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
do do
{ {
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
which_track = PlayingTrack (); which_track = PlayingTrack ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} while (!which_track); } while (!which_track);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
} }
else if (which_track <= wait_track) else if (which_track <= wait_track)
@@ -1339,7 +1339,7 @@ SpewPhrases (COUNT wait_track)
if (GLOBAL (CurrentActivity) & CHECK_ABORT) if (GLOBAL (CurrentActivity) & CHECK_ABORT)
break; break;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
/* FIXME: is this a ramnant of 128-tick clock? /* FIXME: is this a ramnant of 128-tick clock?
* with 120-tick clock this will sleep for 1 tick -- * with 120-tick clock this will sleep for 1 tick --
* for 1/120th of a second; if ONE_SECOND is upgraded * for 1/120th of a second; if ONE_SECOND is upgraded
@@ -1354,7 +1354,7 @@ SpewPhrases (COUNT wait_track)
UpdateInputState (); UpdateInputState ();
#endif #endif
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (CurrentMenuState.cancel) if (CurrentMenuState.cancel)
{ {
SetSliderImage (SetAbsFrameIndex (ActivityFrame, 8)); SetSliderImage (SetAbsFrameIndex (ActivityFrame, 8));
@@ -1443,7 +1443,7 @@ AlienTalkSegue (COUNT wait_track)
if ((GLOBAL (CurrentActivity) & CHECK_ABORT) if ((GLOBAL (CurrentActivity) & CHECK_ABORT)
|| (CommData.AlienTransitionDesc.AnimFlags & TALK_INTRO)) || (CommData.AlienTransitionDesc.AnimFlags & TALK_INTRO))
return; return;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (!pCurInputState->Initialized) if (!pCurInputState->Initialized)
{ {
@@ -1505,9 +1505,9 @@ AlienTalkSegue (COUNT wait_track)
pCurInputState->AnimTask = AssignTask (ambient_anim_task, pCurInputState->AnimTask = AssignTask (ambient_anim_task,
3072, "ambient animations"); 3072, "ambient animations");
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThreadUntil (TimeOut); SleepThreadUntil (TimeOut);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
LastActivity &= ~CHECK_LOAD; LastActivity &= ~CHECK_LOAD;
@@ -1526,9 +1526,9 @@ AlienTalkSegue (COUNT wait_track)
CommData.AlienTalkDesc.AnimFlags |= WAIT_TALKING; CommData.AlienTalkDesc.AnimFlags |= WAIT_TALKING;
while (CommData.AlienTalkDesc.AnimFlags & TALK_INTRO) while (CommData.AlienTalkDesc.AnimFlags & TALK_INTRO)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
} }
@@ -1544,7 +1544,7 @@ AlienTalkSegue (COUNT wait_track)
CommData.AlienTalkDesc.AnimFlags |= PAUSE_TALKING; CommData.AlienTalkDesc.AnimFlags |= PAUSE_TALKING;
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushInput (); FlushInput ();
while (AnyButtonPress (TRUE)) while (AnyButtonPress (TRUE))
TaskSwitch (); TaskSwitch ();
@@ -1579,7 +1579,7 @@ DoCommunication (PENCOUNTER_STATE pES)
if (CurrentMenuState.left) if (CurrentMenuState.left)
{ {
FadeMusic (BACKGROUND_VOL, ONE_SECOND); FadeMusic (BACKGROUND_VOL, ONE_SECOND);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
CommData.AlienTransitionDesc.AnimFlags &= ~(TALK_INTRO | TALK_DONE); CommData.AlienTransitionDesc.AnimFlags &= ~(TALK_INTRO | TALK_DONE);
if (CommData.AlienTalkDesc.NumFrames) if (CommData.AlienTalkDesc.NumFrames)
{ {
@@ -1595,9 +1595,9 @@ DoCommunication (PENCOUNTER_STATE pES)
CommData.AlienTalkDesc.AnimFlags |= WAIT_TALKING; CommData.AlienTalkDesc.AnimFlags |= WAIT_TALKING;
while (CommData.AlienTalkDesc.AnimFlags & TALK_INTRO) while (CommData.AlienTalkDesc.AnimFlags & TALK_INTRO)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
} }
@@ -1610,7 +1610,7 @@ DoCommunication (PENCOUNTER_STATE pES)
CommData.AlienTalkDesc.AnimFlags |= PAUSE_TALKING; CommData.AlienTalkDesc.AnimFlags |= PAUSE_TALKING;
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushInput (); FlushInput ();
while (AnyButtonPress (TRUE)) while (AnyButtonPress (TRUE))
TaskSwitch (); TaskSwitch ();
@@ -1632,9 +1632,9 @@ DoCommunication (PENCOUNTER_STATE pES)
if (pES->top_response == (BYTE)~0) if (pES->top_response == (BYTE)~0)
{ {
pES->top_response = 0; pES->top_response = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RefreshResponses (pES); RefreshResponses (pES);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
if (CurrentMenuState.select) if (CurrentMenuState.select)
@@ -1646,11 +1646,11 @@ DoCommunication (PENCOUNTER_STATE pES)
pES->phrase_buf_index); pES->phrase_buf_index);
pES->phrase_buf[pES->phrase_buf_index++] = '\0'; pES->phrase_buf[pES->phrase_buf_index++] = '\0';
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
FeedbackPlayerPhrase (pES->phrase_buf); FeedbackPlayerPhrase (pES->phrase_buf);
StopTrack (); StopTrack ();
SetSliderImage (SetAbsFrameIndex (ActivityFrame, 2)); SetSliderImage (SetAbsFrameIndex (ActivityFrame, 2));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FadeMusic (BACKGROUND_VOL, ONE_SECOND); FadeMusic (BACKGROUND_VOL, ONE_SECOND);
@@ -1676,21 +1676,21 @@ DoCommunication (PENCOUNTER_STATE pES)
DWORD CurTime; DWORD CurTime;
FONT fLast; FONT fLast;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawSISComWindow (); DrawSISComWindow ();
FeedbackPlayerPhrase (pES->phrase_buf); FeedbackPlayerPhrase (pES->phrase_buf);
summary = TRUE; summary = TRUE;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
CurTime = GetTimeCounter (); CurTime = GetTimeCounter ();
SleepThreadUntil (CurTime + ONE_SECOND / 30); SleepThreadUntil (CurTime + ONE_SECOND / 30);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
r.corner.x = 0; r.corner.x = 0;
r.corner.y = 0; r.corner.y = 0;
r.extent.width = SIS_SCREEN_WIDTH; r.extent.width = SIS_SCREEN_WIDTH;
r.extent.height = SIS_SCREEN_HEIGHT - SLIDER_Y - SLIDER_HEIGHT + 2; r.extent.height = SIS_SCREEN_HEIGHT - SLIDER_Y - SLIDER_HEIGHT + 2;
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x05, 0x00), 0x6E)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x05, 0x00), 0x6E));
DrawFilledRectangle (&r); DrawFilledRectangle (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SetContextBackGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x05, 0x00), 0x6E)); SetContextBackGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x05, 0x00), 0x6E));
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x10, 0x00), 0x6B)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x10, 0x00), 0x6B));
@@ -1727,9 +1727,9 @@ DoCommunication (PENCOUNTER_STATE pES)
buffer[i] = '\0'; buffer[i] = '\0';
temp++; temp++;
t.pStr = buffer; t.pStr = buffer;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
t.baseline.y += DELTA_Y_SUMMARY; t.baseline.y += DELTA_Y_SUMMARY;
col++; col++;
if (col > MAX_COLS) if (col > MAX_COLS)
@@ -1738,9 +1738,9 @@ DoCommunication (PENCOUNTER_STATE pES)
t.align = ALIGN_CENTER; t.align = ALIGN_CENTER;
t.pStr = "_MORE_"; t.pStr = "_MORE_";
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x17, 0x00), 0x01)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x17, 0x00), 0x01));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
col = 0; col = 0;
t.baseline.x = SAFE_X + 2; t.baseline.x = SAFE_X + 2;
t.align = ALIGN_LEFT; t.align = ALIGN_LEFT;
@@ -1748,10 +1748,10 @@ DoCommunication (PENCOUNTER_STATE pES)
WaitAnyButtonOrQuit (TRUE); WaitAnyButtonOrQuit (TRUE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x05, 0x00), 0x6E)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x05, 0x00), 0x6E));
DrawFilledRectangle (&r); DrawFilledRectangle (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x10, 0x00), 0x6B)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x10, 0x00), 0x6B));
} }
} }
@@ -1760,9 +1760,9 @@ DoCommunication (PENCOUNTER_STATE pES)
break; break;
t.pStr = temp; t.pStr = temp;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
t.baseline.y += DELTA_Y_SUMMARY; t.baseline.y += DELTA_Y_SUMMARY;
col++; col++;
if (col > MAX_COLS && curr->next != NULL) if (col > MAX_COLS && curr->next != NULL)
@@ -1772,9 +1772,9 @@ DoCommunication (PENCOUNTER_STATE pES)
t.align = ALIGN_CENTER; t.align = ALIGN_CENTER;
t.pStr = "_MORE_"; t.pStr = "_MORE_";
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x17, 0x00), 0x01)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x17, 0x00), 0x01));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
col = 0; col = 0;
t.baseline.x = SAFE_X + 2; t.baseline.x = SAFE_X + 2;
t.align = ALIGN_LEFT; t.align = ALIGN_LEFT;
@@ -1782,22 +1782,22 @@ DoCommunication (PENCOUNTER_STATE pES)
WaitAnyButtonOrQuit (TRUE); WaitAnyButtonOrQuit (TRUE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x05, 0x00), 0x6E)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x05, 0x00), 0x6E));
DrawFilledRectangle (&r); DrawFilledRectangle (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x10, 0x00), 0x6B)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x10, 0x00), 0x6B));
} }
} }
WaitAnyButtonOrQuit (TRUE); WaitAnyButtonOrQuit (TRUE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContextFont (fLast); SetContextFont (fLast);
RefreshResponses (pES); RefreshResponses (pES);
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x00, 0x00), 0x00)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x00, 0x00, 0x00), 0x00));
DrawFilledRectangle (&r); DrawFilledRectangle (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SummaryChange = TRUE; SummaryChange = TRUE;
summary = FALSE; summary = FALSE;
FlushInput (); FlushInput ();
@@ -1810,7 +1810,7 @@ DoCommunication (PENCOUNTER_STATE pES)
if (CurrentMenuState.left) if (CurrentMenuState.left)
{ {
FadeMusic (BACKGROUND_VOL, ONE_SECOND); FadeMusic (BACKGROUND_VOL, ONE_SECOND);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
FeedbackPlayerPhrase (pES->phrase_buf); FeedbackPlayerPhrase (pES->phrase_buf);
CommData.AlienTransitionDesc.AnimFlags &= ~(TALK_INTRO | TALK_DONE); CommData.AlienTransitionDesc.AnimFlags &= ~(TALK_INTRO | TALK_DONE);
@@ -1828,9 +1828,9 @@ DoCommunication (PENCOUNTER_STATE pES)
CommData.AlienTalkDesc.AnimFlags |= WAIT_TALKING; CommData.AlienTalkDesc.AnimFlags |= WAIT_TALKING;
while (CommData.AlienTalkDesc.AnimFlags & TALK_INTRO) while (CommData.AlienTalkDesc.AnimFlags & TALK_INTRO)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
} }
@@ -1847,7 +1847,7 @@ DoCommunication (PENCOUNTER_STATE pES)
RefreshResponses (pES); RefreshResponses (pES);
FadeMusic (FOREGROUND_VOL, ONE_SECOND); FadeMusic (FOREGROUND_VOL, ONE_SECOND);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushInput (); FlushInput ();
while (AnyButtonPress (TRUE)) while (AnyButtonPress (TRUE))
TaskSwitch (); TaskSwitch ();
@@ -1866,7 +1866,7 @@ DoCommunication (PENCOUNTER_STATE pES)
{ {
COORD y; COORD y;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BatchGraphics (); BatchGraphics ();
add_text (-2, &pES->response_list[pES->cur_response].response_text); add_text (-2, &pES->response_list[pES->cur_response].response_text);
@@ -1884,20 +1884,20 @@ DoCommunication (PENCOUNTER_STATE pES)
RefreshResponses (pES); RefreshResponses (pES);
} }
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
return (TRUE); return (TRUE);
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (pES->AnimTask) if (pES->AnimTask)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
ConcludeTask (pES->AnimTask); ConcludeTask (pES->AnimTask);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
pES->AnimTask = 0; pES->AnimTask = 0;
} }
CommData.AlienTransitionDesc.AnimFlags &= ~(TALK_INTRO | TALK_DONE); CommData.AlienTransitionDesc.AnimFlags &= ~(TALK_INTRO | TALK_DONE);
@@ -1906,7 +1906,7 @@ DoCommunication (PENCOUNTER_STATE pES)
DestroyContext (ReleaseContext (TaskContext)); DestroyContext (ReleaseContext (TaskContext));
TaskContext = 0; TaskContext = 0;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushPLUTXForms (); FlushPLUTXForms ();
ColorChange = FALSE; ColorChange = FALSE;
@@ -2020,15 +2020,15 @@ HailAlien (void)
if (pMenuState == 0) if (pMenuState == 0)
{ {
RepairSISBorder (); RepairSISBorder ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings ((BYTE)~0, 1); DrawMenuStateStrings ((BYTE)~0, 1);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
else /* in starbase */ else /* in starbase */
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawSISFrame (); DrawSISFrame ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (GET_GAME_STATE (STARBASE_AVAILABLE)) if (GET_GAME_STATE (STARBASE_AVAILABLE))
{ {
DrawSISMessage (GAME_STRING (STARBASE_STRING_BASE + 1)); DrawSISMessage (GAME_STRING (STARBASE_STRING_BASE + 1));
@@ -2045,7 +2045,7 @@ HailAlien (void)
DrawSISComWindow (); DrawSISComWindow ();
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LastActivity |= CHECK_LOAD; /* prevent spurious input */ LastActivity |= CHECK_LOAD; /* prevent spurious input */
(*CommData.init_encounter_func) (); (*CommData.init_encounter_func) ();
@@ -2053,7 +2053,7 @@ HailAlien (void)
if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD))) if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD)))
(*CommData.uninit_encounter_func) (); (*CommData.uninit_encounter_func) ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DestroyStringTable (ReleaseStringTable (CommData.ConversationPhrases)); DestroyStringTable (ReleaseStringTable (CommData.ConversationPhrases));
DestroyMusic ((MUSIC_REF)CommData.AlienSong); DestroyMusic ((MUSIC_REF)CommData.AlienSong);
@@ -2078,7 +2078,7 @@ InitCommunication (RESOURCE which_comm)
last_subtitle = NULL; last_subtitle = NULL;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (LastActivity & CHECK_LOAD) if (LastActivity & CHECK_LOAD)
{ {
@@ -2087,9 +2087,9 @@ InitCommunication (RESOURCE which_comm)
{ {
if (LOBYTE (LastActivity) == 0) if (LOBYTE (LastActivity) == 0)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawSISFrame (); DrawSISFrame ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
else else
{ {
@@ -2147,7 +2147,7 @@ InitCommunication (RESOURCE which_comm)
CommData = *LocDataPtr; CommData = *LocDataPtr;
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (GET_GAME_STATE (BATTLE_SEGUE) == 0) if (GET_GAME_STATE (BATTLE_SEGUE) == 0)
status = HAIL; status = HAIL;
@@ -2161,7 +2161,7 @@ InitCommunication (RESOURCE which_comm)
SET_GAME_STATE (BATTLE_SEGUE, 1); SET_GAME_STATE (BATTLE_SEGUE, 1);
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (status == HAIL) if (status == HAIL)
{ {
@@ -2175,7 +2175,7 @@ InitCommunication (RESOURCE which_comm)
SetResourceIndex (hOldIndex); SetResourceIndex (hOldIndex);
CloseResourceIndex (hIndex); CloseResourceIndex (hIndex);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
status = 0; status = 0;
if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD))) if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD)))
+26 -26
View File
@@ -216,10 +216,10 @@ NoRadioactives (RESPONSE_REF R)
{ {
NPCPhrase (HERE_IS_A_NEW_LANDER); NPCPhrase (HERE_IS_A_NEW_LANDER);
++GLOBAL_SIS (NumLanders); ++GLOBAL_SIS (NumLanders);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawLanders (); DrawLanders ();
DeltaSISGauges (4, 0, 0); DeltaSISGauges (4, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (LANDERS_LOST, 1); SET_GAME_STATE (LANDERS_LOST, 1);
} }
@@ -227,26 +227,26 @@ NoRadioactives (RESPONSE_REF R)
{ {
NPCPhrase (HERE_IS_ANOTHER_LANDER); NPCPhrase (HERE_IS_ANOTHER_LANDER);
++GLOBAL_SIS (NumLanders); ++GLOBAL_SIS (NumLanders);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawLanders (); DrawLanders ();
DeltaSISGauges (4, 0, 0); DeltaSISGauges (4, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (PLAYER_SAID (R, need_fuel)) else if (PLAYER_SAID (R, need_fuel))
{ {
NPCPhrase (GIVE_FUEL); NPCPhrase (GIVE_FUEL);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (GIVEN_FUEL_BEFORE, 1); SET_GAME_STATE (GIVEN_FUEL_BEFORE, 1);
} }
else if (PLAYER_SAID (R, need_fuel_again)) else if (PLAYER_SAID (R, need_fuel_again))
{ {
NPCPhrase (GIVE_FUEL_AGAIN); NPCPhrase (GIVE_FUEL_AGAIN);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
if (GLOBAL_SIS (ElementAmounts[RADIOACTIVE])) if (GLOBAL_SIS (ElementAmounts[RADIOACTIVE]))
@@ -284,10 +284,10 @@ AskAfterRadios (RESPONSE_REF R)
{ {
NPCPhrase (HERE_IS_A_NEW_LANDER); NPCPhrase (HERE_IS_A_NEW_LANDER);
++GLOBAL_SIS (NumLanders); ++GLOBAL_SIS (NumLanders);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawLanders (); DrawLanders ();
DeltaSISGauges (4, 0, 0); DeltaSISGauges (4, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (LANDERS_LOST, 1); SET_GAME_STATE (LANDERS_LOST, 1);
} }
@@ -295,26 +295,26 @@ AskAfterRadios (RESPONSE_REF R)
{ {
NPCPhrase (HERE_IS_ANOTHER_LANDER); NPCPhrase (HERE_IS_ANOTHER_LANDER);
++GLOBAL_SIS (NumLanders); ++GLOBAL_SIS (NumLanders);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawLanders (); DrawLanders ();
DeltaSISGauges (4, 0, 0); DeltaSISGauges (4, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (PLAYER_SAID (R, need_fuel)) else if (PLAYER_SAID (R, need_fuel))
{ {
NPCPhrase (GIVE_FUEL); NPCPhrase (GIVE_FUEL);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (GIVEN_FUEL_BEFORE, 1); SET_GAME_STATE (GIVEN_FUEL_BEFORE, 1);
} }
else if (PLAYER_SAID (R, need_fuel_again)) else if (PLAYER_SAID (R, need_fuel_again))
{ {
NPCPhrase (GIVE_FUEL_AGAIN); NPCPhrase (GIVE_FUEL_AGAIN);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (PLAYER_SAID (R, where_get_radios)) else if (PLAYER_SAID (R, where_get_radios))
{ {
@@ -384,10 +384,10 @@ TellMoonBase (RESPONSE_REF R)
{ {
NPCPhrase (HERE_IS_A_NEW_LANDER); NPCPhrase (HERE_IS_A_NEW_LANDER);
++GLOBAL_SIS (NumLanders); ++GLOBAL_SIS (NumLanders);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawLanders (); DrawLanders ();
DeltaSISGauges (4, 0, 0); DeltaSISGauges (4, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (LANDERS_LOST, 1); SET_GAME_STATE (LANDERS_LOST, 1);
} }
@@ -395,26 +395,26 @@ TellMoonBase (RESPONSE_REF R)
{ {
NPCPhrase (HERE_IS_ANOTHER_LANDER); NPCPhrase (HERE_IS_ANOTHER_LANDER);
++GLOBAL_SIS (NumLanders); ++GLOBAL_SIS (NumLanders);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawLanders (); DrawLanders ();
DeltaSISGauges (4, 0, 0); DeltaSISGauges (4, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (PLAYER_SAID (R, need_fuel)) else if (PLAYER_SAID (R, need_fuel))
{ {
NPCPhrase (GIVE_FUEL); NPCPhrase (GIVE_FUEL);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (GIVEN_FUEL_BEFORE, 1); SET_GAME_STATE (GIVEN_FUEL_BEFORE, 1);
} }
else if (PLAYER_SAID (R, need_fuel_again)) else if (PLAYER_SAID (R, need_fuel_again))
{ {
NPCPhrase (GIVE_FUEL_AGAIN); NPCPhrase (GIVE_FUEL_AGAIN);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0); DeltaSISGauges (0, 5 * FUEL_TANK_SCALE, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (PLAYER_SAID (R, we_are_here_to_help)) else if (PLAYER_SAID (R, we_are_here_to_help))
{ {
@@ -576,9 +576,9 @@ GiveRadios (RESPONSE_REF R)
NPCPhrase (FUEL_UP1); NPCPhrase (FUEL_UP1);
AlienTalkSegue (1); AlienTalkSegue (1);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
CommData.AlienAmbientArray[2].AnimFlags |= ANIM_DISABLED; CommData.AlienAmbientArray[2].AnimFlags |= ANIM_DISABLED;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
XFormPLUT (GetColorMapAddress ( XFormPLUT (GetColorMapAddress (
SetAbsColorMapIndex (CommData.AlienColorMap, 0) SetAbsColorMapIndex (CommData.AlienColorMap, 0)
+12 -12
View File
@@ -230,9 +230,9 @@ Buy (RESPONSE_REF Response)
NPCPhrase (NOT_ENOUGH_ROOM); NPCPhrase (NOT_ENOUGH_ROOM);
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (-SHIP_CREW_COST, 0, 0); DeltaSISGauges (-SHIP_CREW_COST, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SlaveryCount += SHIP_CREW_COST; SlaveryCount += SHIP_CREW_COST;
ActivateStarShip (DRUUGE_SHIP, 1); ActivateStarShip (DRUUGE_SHIP, 1);
@@ -246,9 +246,9 @@ Buy (RESPONSE_REF Response)
NPCPhrase (NOT_ENOUGH_CREW); NPCPhrase (NOT_ENOUGH_CREW);
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (-ARTIFACT_CREW_COST, 0, 0); DeltaSISGauges (-ARTIFACT_CREW_COST, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SlaveryCount += ARTIFACT_CREW_COST; SlaveryCount += ARTIFACT_CREW_COST;
SET_GAME_STATE (ROSY_SPHERE_ON_SHIP, 1); SET_GAME_STATE (ROSY_SPHERE_ON_SHIP, 1);
SET_GAME_STATE (ROSY_SPHERE, 1); SET_GAME_STATE (ROSY_SPHERE, 1);
@@ -262,9 +262,9 @@ Buy (RESPONSE_REF Response)
NPCPhrase (NOT_ENOUGH_CREW); NPCPhrase (NOT_ENOUGH_CREW);
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (-ARTIFACT_CREW_COST, 0, 0); DeltaSISGauges (-ARTIFACT_CREW_COST, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SlaveryCount += ARTIFACT_CREW_COST; SlaveryCount += ARTIFACT_CREW_COST;
SET_GAME_STATE (ARTIFACT_2_ON_SHIP, 1); SET_GAME_STATE (ARTIFACT_2_ON_SHIP, 1);
@@ -277,9 +277,9 @@ Buy (RESPONSE_REF Response)
NPCPhrase (NOT_ENOUGH_CREW); NPCPhrase (NOT_ENOUGH_CREW);
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (-ARTIFACT_CREW_COST, 0, 0); DeltaSISGauges (-ARTIFACT_CREW_COST, 0, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SlaveryCount += ARTIFACT_CREW_COST; SlaveryCount += ARTIFACT_CREW_COST;
SET_GAME_STATE (ARTIFACT_3_ON_SHIP, 1); SET_GAME_STATE (ARTIFACT_3_ON_SHIP, 1);
@@ -293,10 +293,10 @@ Buy (RESPONSE_REF Response)
NPCPhrase (NOT_ENOUGH_CREW); NPCPhrase (NOT_ENOUGH_CREW);
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (-FUEL_CREW_COST, DeltaSISGauges (-FUEL_CREW_COST,
FUEL_CREW_COST * FUEL_TANK_SCALE, 0); FUEL_CREW_COST * FUEL_TANK_SCALE, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SlaveryCount += FUEL_CREW_COST; SlaveryCount += FUEL_CREW_COST;
NPCPhrase (BOUGHT_FUEL); NPCPhrase (BOUGHT_FUEL);
@@ -452,14 +452,14 @@ DoTransaction (RESPONSE_REF R)
capacity -= GLOBAL_SIS (FuelOnBoard); capacity -= GLOBAL_SIS (FuelOnBoard);
f = (COUNT)((capacity + (FUEL_TANK_SCALE >> 1)) / FUEL_TANK_SCALE); f = (COUNT)((capacity + (FUEL_TANK_SCALE >> 1)) / FUEL_TANK_SCALE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
while (capacity > 0x3FFFL) while (capacity > 0x3FFFL)
{ {
DeltaSISGauges (0, 0x3FFF, 0); DeltaSISGauges (0, 0x3FFF, 0);
capacity -= 0x3FFF; capacity -= 0x3FFF;
} }
DeltaSISGauges (0, (SIZE)capacity, 0); DeltaSISGauges (0, (SIZE)capacity, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
NPCPhrase (FUEL0); NPCPhrase (FUEL0);
NPCPhrase (-(int)f); NPCPhrase (-(int)f);
+14 -14
View File
@@ -250,9 +250,9 @@ StripShip (COUNT fuel_required)
if (fuel_required == 0) if (fuel_required == 0)
{ {
GlobData.SIS_state = SIS_copy; GlobData.SIS_state = SIS_copy;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (UNDEFINED_DELTA, rescue_fuel, UNDEFINED_DELTA); DeltaSISGauges (UNDEFINED_DELTA, rescue_fuel, UNDEFINED_DELTA);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (fuel_required == (COUNT)~0) else if (fuel_required == (COUNT)~0)
{ {
@@ -276,9 +276,9 @@ StripShip (COUNT fuel_required)
GLOBAL_SIS (ModuleSlots[i]) = EMPTY_SLOT + 2; GLOBAL_SIS (ModuleSlots[i]) = EMPTY_SLOT + 2;
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (UNDEFINED_DELTA, UNDEFINED_DELTA, UNDEFINED_DELTA); DeltaSISGauges (UNDEFINED_DELTA, UNDEFINED_DELTA, UNDEFINED_DELTA);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (fuel_required) else if (fuel_required)
{ {
@@ -384,9 +384,9 @@ StripShip (COUNT fuel_required)
if (total == 0) if (total == 0)
{ {
NPCPhrase (CHARITY); NPCPhrase (CHARITY);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, fuel_required, 0); DeltaSISGauges (0, fuel_required, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (FALSE); return (FALSE);
} }
else else
@@ -567,9 +567,9 @@ DeltaCredit (SIZE delta_credit)
Credit += delta_credit; Credit += delta_credit;
SET_GAME_STATE (MELNORME_CREDIT0, LOBYTE (Credit)); SET_GAME_STATE (MELNORME_CREDIT0, LOBYTE (Credit));
SET_GAME_STATE (MELNORME_CREDIT1, HIBYTE (Credit)); SET_GAME_STATE (MELNORME_CREDIT1, HIBYTE (Credit));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage ((UNICODE *)~0); DrawStatusMessage ((UNICODE *)~0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else else
{ {
@@ -810,14 +810,14 @@ DoBuy (RESPONSE_REF R)
NPCPhrase (GOT_FUEL); NPCPhrase (GOT_FUEL);
f = (DWORD)needed_credit * FUEL_TANK_SCALE; f = (DWORD)needed_credit * FUEL_TANK_SCALE;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
while (f > 0x3FFFL) while (f > 0x3FFFL)
{ {
DeltaSISGauges (0, 0x3FFF, 0); DeltaSISGauges (0, 0x3FFF, 0);
f -= 0x3FFF; f -= 0x3FFF;
} }
DeltaSISGauges (0, (SIZE)f, 0); DeltaSISGauges (0, (SIZE)f, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
needed_credit *= (BIO_CREDIT_VALUE / 2); needed_credit *= (BIO_CREDIT_VALUE / 2);
} }
@@ -1204,9 +1204,9 @@ DoSell (RESPONSE_REF R)
} while (GLOBAL_SIS (TotalBioMass)); } while (GLOBAL_SIS (TotalBioMass));
SleepThread (ONE_SECOND / 2); SleepThread (ONE_SECOND / 2);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
ClearSISRect (DRAW_SIS_DISPLAY); ClearSISRect (DRAW_SIS_DISPLAY);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else /* if (R == sell_rainbow_locations) */ else /* if (R == sell_rainbow_locations) */
{ {
@@ -1836,9 +1836,9 @@ Intro (void)
static COUNT static COUNT
uninit_melnorme (void) uninit_melnorme (void)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (0); DrawStatusMessage (0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (0); return (0);
} }
+2 -2
View File
@@ -208,9 +208,9 @@ CombatIsInevitable (RESPONSE_REF R)
NPCPhrase (DESTRUCT_SEQUENCE); NPCPhrase (DESTRUCT_SEQUENCE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, 0, race_bounty[SLYLANDRO_SHIP] >> 3); DeltaSISGauges (0, 0, race_bounty[SLYLANDRO_SHIP] >> 3);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (BATTLE_SEGUE, 0); SET_GAME_STATE (BATTLE_SEGUE, 0);
} }
else else
+8 -8
View File
@@ -1654,9 +1654,9 @@ NormalStarbase (RESPONSE_REF R)
NPCPhrase (GLOBAL_SHIP_NAME); NPCPhrase (GLOBAL_SHIP_NAME);
NPCPhrase (STARBASE_IS_READY_C); NPCPhrase (STARBASE_IS_READY_C);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, 0, 2500); DeltaSISGauges (0, 0, 2500);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (STARBASE_MONTH, SET_GAME_STATE (STARBASE_MONTH,
GLOBAL (GameClock.month_index)); GLOBAL (GameClock.month_index));
SET_GAME_STATE (STARBASE_DAY, SET_GAME_STATE (STARBASE_DAY,
@@ -1765,9 +1765,9 @@ SellMinerals (RESPONSE_REF R)
Sleepy = FALSE; Sleepy = FALSE;
GLOBAL_SIS (ElementAmounts[i]) = 0; GLOBAL_SIS (ElementAmounts[i]) = 0;
GLOBAL_SIS (TotalElementMass) -= amount; GLOBAL_SIS (TotalElementMass) -= amount;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, 0, amount * GLOBAL (ElementWorth[i])); DeltaSISGauges (0, 0, amount * GLOBAL (ElementWorth[i]));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
break; break;
} }
@@ -1776,10 +1776,10 @@ SellMinerals (RESPONSE_REF R)
TaskSwitch (); TaskSwitch ();
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
DrawCargoStrings ((BYTE)i, (BYTE)i); DrawCargoStrings ((BYTE)i, (BYTE)i);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
ShowRemainingCapacity (); ShowRemainingCapacity ();
DeltaSISGauges (0, 0, GLOBAL (ElementWorth[i])); DeltaSISGauges (0, 0, GLOBAL (ElementWorth[i]));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} while (--amount); } while (--amount);
} }
if (Sleepy) { if (Sleepy) {
@@ -1789,9 +1789,9 @@ SellMinerals (RESPONSE_REF R)
} }
SleepThread (ONE_SECOND / 2); SleepThread (ONE_SECOND / 2);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
ClearSISRect (DRAW_SIS_DISPLAY); ClearSISRect (DRAW_SIS_DISPLAY);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
// DrawStorageBays (FALSE); // DrawStorageBays (FALSE);
if (total < 1000) if (total < 1000)
+4 -4
View File
@@ -105,7 +105,7 @@ DoConfirmExit (void)
if (CommData.ConversationPhrases && PlayingTrack ()) if (CommData.ConversationPhrases && PlayingTrack ())
PauseTrack (); PauseTrack ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (in_confirm) if (in_confirm)
{ {
result = FALSE; result = FALSE;
@@ -134,9 +134,9 @@ DoConfirmExit (void)
// Releasing the lock lets the rotate_planet_task // Releasing the lock lets the rotate_planet_task
// draw a frame. PauseRotate can still allow one more frame // draw a frame. PauseRotate can still allow one more frame
// to be drawn, so it is safer to just not release the lock // to be drawn, so it is safer to just not release the lock
//UnlockCrossThreadMutex (GraphicsLock); //UnlockMutex (GraphicsLock);
FlushGraphics (); FlushGraphics ();
//LockCrossThreadMutex (GraphicsLock); //LockMutex (GraphicsLock);
GLOBAL (CurrentActivity) |= CHECK_ABORT; GLOBAL (CurrentActivity) |= CHECK_ABORT;
FlushInput (); FlushInput ();
@@ -181,7 +181,7 @@ DoConfirmExit (void)
FlushInput (); FlushInput ();
SetContext (oldContext); SetContext (oldContext);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (LOBYTE (GLOBAL (CurrentActivity)) != SUPER_MELEE) if (LOBYTE (GLOBAL (CurrentActivity)) != SUPER_MELEE)
ResumeGameClock (); ResumeGameClock ();
+6 -6
View File
@@ -54,7 +54,7 @@ Credits (void)
if (hMusic) if (hMusic)
PlayMusic (hMusic, TRUE, 1); PlayMusic (hMusic, TRUE, 1);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
GetContextClipRect (&r); GetContextClipRect (&r);
s.origin.x = s.origin.y = 0; s.origin.x = s.origin.y = 0;
@@ -81,19 +81,19 @@ Credits (void)
UnbatchGraphics (); UnbatchGraphics ();
DestroyDrawable (ReleaseDrawable (f[i])); DestroyDrawable (ReleaseDrawable (f[i]));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
while ((GetTimeCounter () - TimeIn < ONE_SECOND * 5) && while ((GetTimeCounter () - TimeIn < ONE_SECOND * 5) &&
!(GLOBAL (CurrentActivity) & CHECK_ABORT)) !(GLOBAL (CurrentActivity) & CHECK_ABORT))
{ {
UpdateInputState (); UpdateInputState ();
SleepThreadUntil (ONE_SECOND / 20); SleepThreadUntil (ONE_SECOND / 20);
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
} }
DestroyDrawable (ReleaseDrawable (f[0])); DestroyDrawable (ReleaseDrawable (f[0]));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
WaitAnyButtonOrQuit (FALSE); WaitAnyButtonOrQuit (FALSE);
@@ -139,7 +139,7 @@ OutTakes (void)
optSubtitles = TRUE; optSubtitles = TRUE;
sliderDisabled = TRUE; sliderDisabled = TRUE;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x0, 0x0, 0x0), 0x00)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0x0, 0x0, 0x0), 0x00));
fade_buf[0] = FadeAllToColor; fade_buf[0] = FadeAllToColor;
@@ -149,7 +149,7 @@ OutTakes (void)
r.extent.width = SCREEN_WIDTH; r.extent.width = SCREEN_WIDTH;
r.extent.height = SCREEN_HEIGHT; r.extent.height = SCREEN_HEIGHT;
DrawFilledRectangle (&r); DrawFilledRectangle (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
for (i = 0; (i < NUM_OUTTAKES) && for (i = 0; (i < NUM_OUTTAKES) &&
!(GLOBAL (CurrentActivity) & CHECK_ABORT); i++) !(GLOBAL (CurrentActivity) & CHECK_ABORT); i++)
+28 -28
View File
@@ -47,9 +47,9 @@ DoSelectAction (PMENU_STATE pMS)
if (pMS->Initialized) if (pMS->Initialized)
{ {
DrawMenuStateStrings (PM_CONVERSE, pMS->CurState); DrawMenuStateStrings (PM_CONVERSE, pMS->CurState);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
return ((BOOLEAN)pMS->Initialized); return ((BOOLEAN)pMS->Initialized);
default: default:
@@ -173,7 +173,7 @@ InitEncounter (void)
extern FRAME planet[]; extern FRAME planet[];
MUSIC_REF MR; MUSIC_REF MR;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
hOldIndex = SetResourceIndex (hResIndex); hOldIndex = SetResourceIndex (hResIndex);
@@ -183,12 +183,12 @@ InitEncounter (void)
MR = LoadMusicInstance (REDALERT_MUSIC); MR = LoadMusicInstance (REDALERT_MUSIC);
PlayMusic (MR, FALSE, 1); PlayMusic (MR, FALSE, 1);
SegueFrame = CaptureDrawable (LoadGraphic (SEGUE_PMAP_ANIM)); SegueFrame = CaptureDrawable (LoadGraphic (SEGUE_PMAP_ANIM));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
while (PLRPlaying (MR)) while (PLRPlaying (MR))
TaskSwitch (); TaskSwitch ();
StopMusic (); StopMusic ();
DestroyMusic (MR); DestroyMusic (MR);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
s.origin.x = s.origin.y = 0; s.origin.x = s.origin.y = 0;
SetTransitionSource (NULL); SetTransitionSource (NULL);
@@ -300,7 +300,7 @@ InitEncounter (void)
SetResourceIndex (hOldIndex); SetResourceIndex (hOldIndex);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
{ {
MENU_STATE MenuState; MENU_STATE MenuState;
@@ -309,15 +309,15 @@ InitEncounter (void)
MenuState.Initialized = FALSE; MenuState.Initialized = FALSE;
DrawMenuStateStrings (PM_CONVERSE, MenuState.CurState = HAIL); DrawMenuStateStrings (PM_CONVERSE, MenuState.CurState = HAIL);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DoInput ((PVOID)&MenuState, TRUE); DoInput ((PVOID)&MenuState, TRUE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (MenuState.CurState); return (MenuState.CurState);
} }
@@ -357,10 +357,10 @@ DrawFadeText (UNICODE *str1, UNICODE *str2, BOOLEAN fade_in, PRECT
{ {
for (i = 0; i < (SIZE) NUM_FADES; ++i) for (i = 0; i < (SIZE) NUM_FADES; ++i)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (AnyButtonPress (TRUE)) if (AnyButtonPress (TRUE))
i = NUM_FADES - 1; i = NUM_FADES - 1;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContextForeGroundColor (fade_cycle[i]); SetContextForeGroundColor (fade_cycle[i]);
font_DrawText (&t1); font_DrawText (&t1);
@@ -373,10 +373,10 @@ DrawFadeText (UNICODE *str1, UNICODE *str2, BOOLEAN fade_in, PRECT
{ {
for (i = NUM_FADES - 1; i >= 0; --i) for (i = NUM_FADES - 1; i >= 0; --i)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (AnyButtonPress (TRUE)) if (AnyButtonPress (TRUE))
i = 0; i = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContextForeGroundColor (fade_cycle[i]); SetContextForeGroundColor (fade_cycle[i]);
font_DrawText (&t1); font_DrawText (&t1);
@@ -397,7 +397,7 @@ UninitEncounter (void)
ships_killed = 0; ships_killed = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
free_gravity_well (); free_gravity_well ();
if ((GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD)) if ((GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD))
@@ -478,9 +478,9 @@ UninitEncounter (void)
VictoryState = 0; VictoryState = 0;
else else
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawSISFrame (); DrawSISFrame ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawSISMessage (NULL_PTR); DrawSISMessage (NULL_PTR);
if (LOBYTE (GLOBAL (CurrentActivity)) == IN_HYPERSPACE) if (LOBYTE (GLOBAL (CurrentActivity)) == IN_HYPERSPACE)
@@ -601,9 +601,9 @@ UninitEncounter (void)
Time = GetTimeCounter (); Time = GetTimeCounter ();
for (j = 0; j < NUM_SHIP_FADES; ++j) for (j = 0; j < NUM_SHIP_FADES; ++j)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
Sleepy = (BOOLEAN)!AnyButtonPress (TRUE); Sleepy = (BOOLEAN)!AnyButtonPress (TRUE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (!Sleepy) if (!Sleepy)
break; break;
@@ -637,10 +637,10 @@ UninitEncounter (void)
FlushInput (); FlushInput ();
Time = GetTimeCounter () + (ONE_SECOND * 3); Time = GetTimeCounter () + (ONE_SECOND * 3);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
while (!(AnyButtonPress (TRUE)) && GetTimeCounter () < Time) while (!(AnyButtonPress (TRUE)) && GetTimeCounter () < Time)
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (!CurrentInputState.p1_escape) if (!CurrentInputState.p1_escape)
{ {
DrawFadeText (str1, str2, FALSE, &scavenge_r); DrawFadeText (str1, str2, FALSE, &scavenge_r);
@@ -668,11 +668,11 @@ UninitEncounter (void)
&scavenge_r &scavenge_r
); );
Time = GetTimeCounter () + ONE_SECOND * 2; Time = GetTimeCounter () + ONE_SECOND * 2;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
while (!(AnyButtonPress (TRUE)) while (!(AnyButtonPress (TRUE))
&& GetTimeCounter () < Time) && GetTimeCounter () < Time)
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (!CurrentInputState.p1_escape) if (!CurrentInputState.p1_escape)
DrawFadeText (str1, str2, FALSE, &scavenge_r); DrawFadeText (str1, str2, FALSE, &scavenge_r);
} }
@@ -691,7 +691,7 @@ UninitEncounter (void)
} }
} }
ExitUninitEncounter: ExitUninitEncounter:
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (ships_killed); return (ships_killed);
} }
@@ -705,7 +705,7 @@ EncounterBattle (void)
extern BOOLEAN LoadSC2Data (void); extern BOOLEAN LoadSC2Data (void);
extern BOOLEAN FreeSC2Data (void); extern BOOLEAN FreeSC2Data (void);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SET_GAME_STATE (BATTLE_SEGUE, 1); SET_GAME_STATE (BATTLE_SEGUE, 1);
@@ -741,9 +741,9 @@ EncounterBattle (void)
GameSounds = CaptureSound (LoadSound (GAME_SOUNDS)); GameSounds = CaptureSound (LoadSound (GAME_SOUNDS));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
Battle (); Battle ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DestroySound (ReleaseSound (GameSounds)); DestroySound (ReleaseSound (GameSounds));
GameSounds = 0; GameSounds = 0;
@@ -769,6 +769,6 @@ EncounterBattle (void)
SetResourceIndex (hLastIndex); SetResourceIndex (hLastIndex);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
+2 -2
View File
@@ -79,13 +79,13 @@ Introduction (void)
xform_buf[0] = FadeAllToBlack; xform_buf[0] = FadeAllToBlack;
SleepThreadUntil (XFormColorMap ( SleepThreadUntil (XFormColorMap (
(COLORMAPPTR) xform_buf, ONE_SECOND / 120)); (COLORMAPPTR) xform_buf, ONE_SECOND / 120));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
s.origin.x = s.origin.y = 0; s.origin.x = s.origin.y = 0;
s.frame = CaptureDrawable (LoadGraphic (TITLE_ANIM)); s.frame = CaptureDrawable (LoadGraphic (TITLE_ANIM));
DrawStamp (&s); DrawStamp (&s);
DestroyDrawable (ReleaseDrawable (s.frame)); DestroyDrawable (ReleaseDrawable (s.frame));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
xform_buf[0] = FadeAllToColor; xform_buf[0] = FadeAllToColor;
TimeOut = XFormColorMap ((COLORMAPPTR)xform_buf, ONE_SECOND / 2); TimeOut = XFormColorMap ((COLORMAPPTR)xform_buf, ONE_SECOND / 2);
+26 -26
View File
@@ -163,9 +163,9 @@ FeedbackSetting (BYTE which_setting)
break; break;
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (buf); DrawStatusMessage (buf);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static void static void
FeedbackQuit (BYTE which_setting) FeedbackQuit (BYTE which_setting)
@@ -182,9 +182,9 @@ FeedbackQuit (BYTE which_setting)
break; break;
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (buf); DrawStatusMessage (buf);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static BOOLEAN DoSettings (PMENU_STATE pMS); static BOOLEAN DoSettings (PMENU_STATE pMS);
@@ -199,7 +199,7 @@ DrawDescriptionString (PMENU_STATE pMS, COUNT which_string, SIZE state)
FONT Font; FONT Font;
static BOOLEAN DoNaming (PMENU_STATE pMS); static BOOLEAN DoNaming (PMENU_STATE pMS);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
rel_index = (COUNT)(which_string - pMS->first_item.y); rel_index = (COUNT)(which_string - pMS->first_item.y);
@@ -276,7 +276,7 @@ DrawDescriptionString (PMENU_STATE pMS, COUNT which_string, SIZE state)
TextRect (&lf, &text_r, char_deltas); TextRect (&lf, &text_r, char_deltas);
if ((text_r.extent.width + 2) >= r.extent.width) if ((text_r.extent.width + 2) >= r.extent.width)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (FALSE); return (FALSE);
} }
@@ -310,7 +310,7 @@ DrawDescriptionString (PMENU_STATE pMS, COUNT which_string, SIZE state)
SetFlashRect (&r, (FRAME)0); SetFlashRect (&r, (FRAME)0);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (TRUE); return (TRUE);
} }
@@ -436,9 +436,9 @@ DoNaming (PMENU_STATE pMS)
pMS->CurString = (STRING)&GD[0]; pMS->CurString = (STRING)&GD[0];
DrawDescriptionString (pMS, pMS->CurState, 1); DrawDescriptionString (pMS, pMS->CurState, 1);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (GAME_STRING (NAMING_STRING_BASE + 0)); DrawStatusMessage (GAME_STRING (NAMING_STRING_BASE + 0));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
EnableCharacterMode (); EnableCharacterMode ();
DoInput (pMS, TRUE); DoInput (pMS, TRUE);
@@ -513,9 +513,9 @@ DoSettings (PMENU_STATE pMS)
|| (CurrentMenuState.select || (CurrentMenuState.select
&& pMS->CurState == EXIT_MENU_SETTING)) && pMS->CurState == EXIT_MENU_SETTING))
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (NULL_PTR); DrawStatusMessage (NULL_PTR);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->CurState = SETTINGS; pMS->CurState = SETTINGS;
pMS->InputFunc = DoGameOptions; pMS->InputFunc = DoGameOptions;
@@ -582,9 +582,9 @@ DoQuitMenu (PMENU_STATE pMS)
|| (CurrentMenuState.select || (CurrentMenuState.select
&& pMS->CurState == NO_QUIT_MENU)) && pMS->CurState == NO_QUIT_MENU))
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (NULL_PTR); DrawStatusMessage (NULL_PTR);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->CurState = QUIT_GAME; pMS->CurState = QUIT_GAME;
pMS->InputFunc = DoGameOptions; pMS->InputFunc = DoGameOptions;
@@ -858,9 +858,9 @@ ShowSummary (SUMMARY_DESC *pSD)
r.corner.y = SIS_ORG_Y + 84; r.corner.y = SIS_ORG_Y + 84;
r.extent = OldRect.extent; r.extent = OldRect.extent;
SetContextClipRect (&r); SetContextClipRect (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
InitLander ((unsigned char)(pSD->Flags | OVERRIDE_LANDER_FLAGS)); InitLander ((unsigned char)(pSD->Flags | OVERRIDE_LANDER_FLAGS));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContextClipRect (&OldRect); SetContextClipRect (&OldRect);
SetContext (SpaceContext); SetContext (SpaceContext);
@@ -1002,7 +1002,7 @@ DoPickGame (PMENU_STATE pMS)
pMS->ModuleFrame = SetAbsFrameIndex (PlayFrame, 41); pMS->ModuleFrame = SetAbsFrameIndex (PlayFrame, 41);
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetTransitionSource (NULL); SetTransitionSource (NULL);
BatchGraphics (); BatchGraphics ();
Restart: Restart:
@@ -1037,7 +1037,7 @@ Restart:
prev_save = pMS->CurState; prev_save = pMS->CurState;
if (pMS->delta_item == SAVE_GAME || pSD->year_index) if (pMS->delta_item == SAVE_GAME || pSD->year_index)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (pMS->delta_item == SAVE_GAME) if (pMS->delta_item == SAVE_GAME)
{ {
STAMP MsgStamp; STAMP MsgStamp;
@@ -1056,13 +1056,13 @@ Restart:
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
DrawStamp (&MsgStamp); DrawStamp (&MsgStamp);
DestroyDrawable (ReleaseDrawable (MsgStamp.frame)); DestroyDrawable (ReleaseDrawable (MsgStamp.frame));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SaveProblem (); SaveProblem ();
pMS->Initialized = FALSE; pMS->Initialized = FALSE;
NewState = pMS->CurState; NewState = pMS->CurState;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BatchGraphics (); BatchGraphics ();
goto Restart; goto Restart;
} }
@@ -1088,7 +1088,7 @@ Restart:
GLOBAL (CurrentActivity) |= CHECK_LOAD; GLOBAL (CurrentActivity) |= CHECK_LOAD;
} }
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->ModuleFrame = 0; pMS->ModuleFrame = 0;
pMS->CurState = (BYTE)pMS->delta_item; pMS->CurState = (BYTE)pMS->delta_item;
@@ -1137,7 +1137,7 @@ Restart:
TEXT t; TEXT t;
BYTE i, SHIFT; BYTE i, SHIFT;
UNICODE buf[80],buf2[15]; UNICODE buf[80],buf2[15];
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BatchGraphics (); BatchGraphics ();
if (((SUMMARY_DESC *)pMS->CurString)[NewState].year_index != 0) if (((SUMMARY_DESC *)pMS->CurString)[NewState].year_index != 0)
@@ -1245,7 +1245,7 @@ ChangeGameSelection:
UnbatchGraphics (); UnbatchGraphics ();
} }
SetFlashRect (0, (FRAME)0); SetFlashRect (0, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
@@ -1268,7 +1268,7 @@ PickGame (PMENU_STATE pMS)
TaskSwitch (); TaskSwitch ();
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (SpaceContext); OldContext = SetContext (SpaceContext);
DlgStamp.origin.x = 0; DlgStamp.origin.x = 0;
@@ -1284,11 +1284,11 @@ PickGame (PMENU_STATE pMS)
pMS->Initialized = FALSE; pMS->Initialized = FALSE;
pMS->InputFunc = DoPickGame; pMS->InputFunc = DoPickGame;
pMS->CurString = (STRING)&desc_array[0]; pMS->CurString = (STRING)&desc_array[0];
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DoInput (pMS, TRUE); DoInput (pMS, TRUE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
pMS->Initialized = -1; pMS->Initialized = -1;
pMS->InputFunc = DoGameOptions; pMS->InputFunc = DoGameOptions;
@@ -1340,7 +1340,7 @@ PickGame (PMENU_STATE pMS)
DestroyDrawable (ReleaseDrawable (DlgStamp.frame)); DestroyDrawable (ReleaseDrawable (DlgStamp.frame));
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (retval); return (retval);
} }
+10 -10
View File
@@ -322,9 +322,9 @@ LoadHyperspace (void)
{ {
if (LOBYTE (LastActivity) == 0) if (LOBYTE (LastActivity) == 0)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawSISFrame (); DrawSISFrame ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
else else
{ {
@@ -360,9 +360,9 @@ LoadHyperspace (void)
BOOLEAN BOOLEAN
FreeHyperspace (void) FreeHyperspace (void)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SuspendGameClock (); SuspendGameClock ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
{ {
FRAME F; FRAME F;
@@ -1601,7 +1601,7 @@ UnbatchGraphics ();
OldContext = SetContext (SpaceContext); OldContext = SetContext (SpaceContext);
OldColor = SetContextBackGroundColor (BLACK_COLOR); OldColor = SetContextBackGroundColor (BLACK_COLOR);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SuspendGameClock (); SuspendGameClock ();
memset ((PMENU_STATE)&MenuState, 0, sizeof (MenuState)); memset ((PMENU_STATE)&MenuState, 0, sizeof (MenuState));
@@ -1610,13 +1610,13 @@ UnbatchGraphics ();
MenuState.CurState = STARMAP + 1; MenuState.CurState = STARMAP + 1;
DrawMenuStateStrings (PM_STARMAP, STARMAP); DrawMenuStateStrings (PM_STARMAP, STARMAP);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DoInput ((PVOID)&MenuState, TRUE); DoInput ((PVOID)&MenuState, TRUE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
SetContext (SpaceContext); SetContext (SpaceContext);
@@ -1624,10 +1624,10 @@ UnbatchGraphics ();
if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD))) if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD)))
{ {
ClearSISRect (CLEAR_SIS_RADAR); ClearSISRect (CLEAR_SIS_RADAR);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
WaitForNoInput (ONE_SECOND / 2); WaitForNoInput (ONE_SECOND / 2);
ResumeGameClock (); ResumeGameClock ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
SetContextBackGroundColor (OldColor); SetContextBackGroundColor (OldColor);
+2 -2
View File
@@ -51,13 +51,13 @@ Introduction (void)
xform_buf[0] = FadeAllToBlack; xform_buf[0] = FadeAllToBlack;
SleepThreadUntil (XFormColorMap ( SleepThreadUntil (XFormColorMap (
(COLORMAPPTR)xform_buf, ONE_SECOND / 120)); (COLORMAPPTR)xform_buf, ONE_SECOND / 120));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
s.origin.x = s.origin.y = 0; s.origin.x = s.origin.y = 0;
s.frame = CaptureDrawable (LoadGraphic (TITLE_ANIM)); s.frame = CaptureDrawable (LoadGraphic (TITLE_ANIM));
DrawStamp (&s); DrawStamp (&s);
DestroyDrawable (ReleaseDrawable (s.frame)); DestroyDrawable (ReleaseDrawable (s.frame));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushInput (); FlushInput ();
+2 -2
View File
@@ -83,7 +83,7 @@ VidPlay (VIDEO_REF VidRef, char *loopname, BOOLEAN uninit)
TFB_FadeClearScreen (); TFB_FadeClearScreen ();
FlushInput (); FlushInput ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
// play video in the center of the screen // play video in the center of the screen
if (TFB_PlayVideo (VidRef, (SCREEN_WIDTH - vid->w) / 2, if (TFB_PlayVideo (VidRef, (SCREEN_WIDTH - vid->w) / 2,
@@ -96,7 +96,7 @@ VidPlay (VIDEO_REF VidRef, char *loopname, BOOLEAN uninit)
{ {
ret = NO_FMV; ret = NO_FMV;
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
/* dodge compiler warnings */ /* dodge compiler warnings */
(void) loopname; (void) loopname;
+6 -6
View File
@@ -69,12 +69,12 @@ TFB_FadeClearScreen ()
(COLORMAPPTR) xform_buf, ONE_SECOND / 2)); (COLORMAPPTR) xform_buf, ONE_SECOND / 2));
// paint black rect over screen // paint black rect over screen
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
SetContextForeGroundColor (BUILD_COLOR ( SetContextForeGroundColor (BUILD_COLOR (
MAKE_RGB15 (0x0, 0x0, 0x0), 0x00)); MAKE_RGB15 (0x0, 0x0, 0x0), 0x00));
DrawFilledRectangle (&r); DrawFilledRectangle (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
// fade in black rect instantly // fade in black rect instantly
xform_buf[0] = FadeAllToColor; xform_buf[0] = FadeAllToColor;
@@ -152,12 +152,12 @@ ac_video_play_task (void* data)
// draw the frame // draw the frame
if (ret > 0) if (ret > 0)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
TFB_DrawScreen_Image (vid->frame, TFB_DrawScreen_Image (vid->frame,
vid->dst_rect.corner.x, vid->dst_rect.corner.y, vid->dst_rect.corner.x, vid->dst_rect.corner.y,
GSCALE_IDENTITY, NULL, TFB_SCREEN_MAIN); GSCALE_IDENTITY, NULL, TFB_SCREEN_MAIN);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushGraphics (); // needed to prevent half-frame updates FlushGraphics (); // needed to prevent half-frame updates
} }
@@ -209,12 +209,12 @@ video_play_task (void* data)
SleepThreadUntil (vid->frame_time); SleepThreadUntil (vid->frame_time);
vid->cur_frame = vid->decoder->cur_frame; vid->cur_frame = vid->decoder->cur_frame;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
TFB_DrawScreen_Image (vid->frame, TFB_DrawScreen_Image (vid->frame,
vid->dst_rect.corner.x, vid->dst_rect.corner.y, vid->dst_rect.corner.x, vid->dst_rect.corner.y,
GSCALE_IDENTITY, NULL, TFB_SCREEN_MAIN); GSCALE_IDENTITY, NULL, TFB_SCREEN_MAIN);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushGraphics (); // needed to prevent half-frame updates FlushGraphics (); // needed to prevent half-frame updates
ret = VideoDecoder_Decode (vid->decoder); ret = VideoDecoder_Decode (vid->decoder);
+49 -49
View File
@@ -224,9 +224,9 @@ DrawPickFrame (PMELEE_STATE pMS)
+ (ship_r.extent.height - r.extent.height)); + (ship_r.extent.height - r.extent.height));
SetFrameHot (F, MAKE_HOT_SPOT (r.corner.x, r.corner.y)); SetFrameHot (F, MAKE_HOT_SPOT (r.corner.x, r.corner.y));
DrawMeleeIcon (27); DrawMeleeIcon (27);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMeleeShipStrings (pMS, (BYTE)pMS->CurIndex); DrawMeleeShipStrings (pMS, (BYTE)pMS->CurIndex);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
static void static void
@@ -518,19 +518,19 @@ int flash_selection_func(void* data)
#define FLASH_RATE (ONE_SECOND / 8) #define FLASH_RATE (ONE_SECOND / 8)
CONTEXT OldContext; CONTEXT OldContext;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (SpaceContext); OldContext = SetContext (SpaceContext);
Deselect (pMeleeState->MeleeOption); Deselect (pMeleeState->MeleeOption);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThreadUntil (TimeIn + FLASH_RATE); SleepThreadUntil (TimeIn + FLASH_RATE);
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (SpaceContext); OldContext = SetContext (SpaceContext);
Select (pMeleeState->MeleeOption); Select (pMeleeState->MeleeOption);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThreadUntil (TimeIn + FLASH_RATE); SleepThreadUntil (TimeIn + FLASH_RATE);
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
} }
@@ -571,7 +571,7 @@ DrawMeleeShipStrings (PMELEE_STATE pMS, BYTE NewStarShip)
STARSHIPPTR StarShipPtr; STARSHIPPTR StarShipPtr;
CONTEXT OldContext; CONTEXT OldContext;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (StatusContext); OldContext = SetContext (StatusContext);
GetContextClipRect (&OldRect); GetContextClipRect (&OldRect);
@@ -630,7 +630,7 @@ DrawMeleeShipStrings (PMELEE_STATE pMS, BYTE NewStarShip)
SetContextClipRect (&OldRect); SetContextClipRect (&OldRect);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static COUNT static COUNT
@@ -846,7 +846,7 @@ DoLoadTeam (PMELEE_STATE pMS)
if (!pMS->Initialized) if (!pMS->Initialized)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
Select (pMS->MeleeOption); Select (pMS->MeleeOption);
if ((pMS->TopTeamIndex = pMS->CurIndex) == (COUNT)~0) if ((pMS->TopTeamIndex = pMS->CurIndex) == (COUNT)~0)
pMS->TopTeamIndex = pMS->CurIndex = 0; pMS->TopTeamIndex = pMS->CurIndex = 0;
@@ -858,7 +858,7 @@ DoLoadTeam (PMELEE_STATE pMS)
DrawFileStrings (pMS, -1); DrawFileStrings (pMS, -1);
pMS->Initialized = TRUE; pMS->Initialized = TRUE;
pMS->InputFunc = DoLoadTeam; pMS->InputFunc = DoLoadTeam;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (CurrentMenuState.select | CurrentMenuState.cancel) else if (CurrentMenuState.select | CurrentMenuState.cancel)
{ {
@@ -876,9 +876,9 @@ DoLoadTeam (PMELEE_STATE pMS)
RECT r; RECT r;
GetFrameRect (SetAbsFrameIndex (MeleeFrame, 28), &r); GetFrameRect (SetAbsFrameIndex (MeleeFrame, 28), &r);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RepairMeleeFrame (&r); RepairMeleeFrame (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
InTime = GetTimeCounter (); InTime = GetTimeCounter ();
} }
@@ -932,7 +932,7 @@ DoLoadTeam (PMELEE_STATE pMS)
if (index != old_index) if (index != old_index)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if ((int)NewTop == (int)pMS->TopTeamIndex) if ((int)NewTop == (int)pMS->TopTeamIndex)
Deselect (pMS->MeleeOption); Deselect (pMS->MeleeOption);
else else
@@ -941,7 +941,7 @@ DoLoadTeam (PMELEE_STATE pMS)
DrawFileStrings (pMS, -1); DrawFileStrings (pMS, -1);
} }
pMS->CurIndex = index; pMS->CurIndex = index;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
@@ -1076,7 +1076,7 @@ DoSaveTeam (PMELEE_STATE pMS)
sprintf (file, "%s.mle", pMS->TeamImage[pMS->side].TeamName); sprintf (file, "%s.mle", pMS->TeamImage[pMS->side].TeamName);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (ScreenContext); OldContext = SetContext (ScreenContext);
ConfirmSaveLoad (&MsgStamp); ConfirmSaveLoad (&MsgStamp);
save_fp = res_OpenResFile (meleeDir, file, "wb"); save_fp = res_OpenResFile (meleeDir, file, "wb");
@@ -1097,7 +1097,7 @@ DoSaveTeam (PMELEE_STATE pMS)
DrawStamp (&MsgStamp); DrawStamp (&MsgStamp);
DestroyDrawable (ReleaseDrawable (MsgStamp.frame)); DestroyDrawable (ReleaseDrawable (MsgStamp.frame));
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DeleteResFile (meleeDir, file); DeleteResFile (meleeDir, file);
SaveProblem (); SaveProblem ();
@@ -1110,7 +1110,7 @@ DoSaveTeam (PMELEE_STATE pMS)
DrawStamp (&MsgStamp); DrawStamp (&MsgStamp);
DestroyDrawable (ReleaseDrawable (MsgStamp.frame)); DestroyDrawable (ReleaseDrawable (MsgStamp.frame));
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
return (save_fp != 0); return (save_fp != 0);
@@ -1135,12 +1135,12 @@ DeleteCurrentShip (PMELEE_STATE pMS)
pMS->TeamImage[pMS->side].ShipList[pMS->row][pMS->col] = (BYTE)~0; pMS->TeamImage[pMS->side].ShipList[pMS->row][pMS->col] = (BYTE)~0;
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
GetShipBox (&r, pMS->side, pMS->row, pMS->col); GetShipBox (&r, pMS->side, pMS->row, pMS->col);
RepairMeleeFrame (&r); RepairMeleeFrame (&r);
DrawTeamString (pMS, 4); DrawTeamString (pMS, 4);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
@@ -1177,12 +1177,12 @@ DoEdit (PMELEE_STATE pMS)
|| (CurrentMenuState.right || (CurrentMenuState.right
&& (pMS->col == NUM_MELEE_COLUMNS - 1 || pMS->row == NUM_MELEE_ROWS)))) && (pMS->col == NUM_MELEE_COLUMNS - 1 || pMS->row == NUM_MELEE_ROWS))))
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
Deselect (EDIT_MELEE); Deselect (EDIT_MELEE);
pMS->CurIndex = (COUNT)~0; pMS->CurIndex = (COUNT)~0;
pMS->MeleeOption = START_MELEE; pMS->MeleeOption = START_MELEE;
pMS->InputFunc = DoMelee; pMS->InputFunc = DoMelee;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
InTime = GetTimeCounter (); InTime = GetTimeCounter ();
} }
else if (pMS->row < NUM_MELEE_ROWS else if (pMS->row < NUM_MELEE_ROWS
@@ -1213,7 +1213,7 @@ DoEdit (PMELEE_STATE pMS)
if (pMS->CurIndex != (BYTE)~0) if (pMS->CurIndex != (BYTE)~0)
{ {
UNICODE ch; UNICODE ch;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (pMS->Initialized == 1) if (pMS->Initialized == 1)
{ {
FlushInput (); FlushInput ();
@@ -1226,15 +1226,15 @@ DoEdit (PMELEE_STATE pMS)
pMS->Initialized = 1; pMS->Initialized = 1;
DisableCharacterMode (); DisableCharacterMode ();
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (TRUE); return (TRUE);
} }
else if (CurrentMenuState.select) else if (CurrentMenuState.select)
{ {
pMS->CurIndex = 0; pMS->CurIndex = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawTeamString (pMS, 1); DrawTeamString (pMS, 1);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
EnableCharacterMode (); EnableCharacterMode ();
return (TRUE); return (TRUE);
} }
@@ -1282,7 +1282,7 @@ DoEdit (PMELEE_STATE pMS)
if (col != pMS->col || row != pMS->row || side != pMS->side) if (col != pMS->col || row != pMS->row || side != pMS->side)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
Deselect (EDIT_MELEE); Deselect (EDIT_MELEE);
pMS->side = side; pMS->side = side;
pMS->row = row; pMS->row = row;
@@ -1291,7 +1291,7 @@ DoEdit (PMELEE_STATE pMS)
pMS->CurIndex = (BYTE)~0; pMS->CurIndex = (BYTE)~0;
else else
pMS->CurIndex = pMS->TeamImage[side].ShipList[row][col]; pMS->CurIndex = pMS->TeamImage[side].ShipList[row][col];
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMeleeShipStrings (pMS, (BYTE)(pMS->CurIndex)); DrawMeleeShipStrings (pMS, (BYTE)(pMS->CurIndex));
} }
@@ -1319,21 +1319,21 @@ DoPickShip (PMELEE_STATE pMS)
if (pMS->Initialized == 0) if (pMS->Initialized == 0)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
Deselect (EDIT_MELEE); Deselect (EDIT_MELEE);
pMS->InputFunc = DoPickShip; pMS->InputFunc = DoPickShip;
DrawPickFrame (pMS); DrawPickFrame (pMS);
pMS->Initialized = TRUE; pMS->Initialized = TRUE;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
Deselect (EDIT_MELEE); Deselect (EDIT_MELEE);
pMS->Initialized = TRUE; pMS->Initialized = TRUE;
AdvanceCursor (pMS); AdvanceCursor (pMS);
pMS->CurIndex = pMS->TeamImage[pMS->side].ShipList[pMS->row][pMS->col]; pMS->CurIndex = pMS->TeamImage[pMS->side].ShipList[pMS->row][pMS->col];
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMeleeShipStrings (pMS, (BYTE)(pMS->CurIndex)); DrawMeleeShipStrings (pMS, (BYTE)(pMS->CurIndex));
} }
@@ -1353,10 +1353,10 @@ DoPickShip (PMELEE_STATE pMS)
UnlockStarShip (&master_q, hStarShip); UnlockStarShip (&master_q, hStarShip);
pMS->TeamImage[pMS->side].ShipList[pMS->row][pMS->col] = pMS->CurIndex; pMS->TeamImage[pMS->side].ShipList[pMS->row][pMS->col] = pMS->CurIndex;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawTeamString (pMS, 4); DrawTeamString (pMS, 4);
DrawShipBox (pMS, FALSE); DrawShipBox (pMS, FALSE);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
AdvanceCursor (pMS); AdvanceCursor (pMS);
} }
@@ -1364,9 +1364,9 @@ DoPickShip (PMELEE_STATE pMS)
RECT r; RECT r;
GetFrameRect (SetAbsFrameIndex (MeleeFrame, 27), &r); GetFrameRect (SetAbsFrameIndex (MeleeFrame, 27), &r);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RepairMeleeFrame (&r); RepairMeleeFrame (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
pMS->CurIndex = pMS->TeamImage[pMS->side].ShipList[pMS->row][pMS->col]; pMS->CurIndex = pMS->TeamImage[pMS->side].ShipList[pMS->row][pMS->col];
@@ -1416,10 +1416,10 @@ DoPickShip (PMELEE_STATE pMS)
if (NewStarShip != pMS->CurIndex) if (NewStarShip != pMS->CurIndex)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
Deselect (EDIT_MELEE); Deselect (EDIT_MELEE);
pMS->CurIndex = NewStarShip; pMS->CurIndex = NewStarShip;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMeleeShipStrings (pMS, NewStarShip); DrawMeleeShipStrings (pMS, NewStarShip);
} }
} }
@@ -1469,9 +1469,9 @@ FreeMeleeInfo (PMELEE_STATE pMS)
{ {
if (pMS->flash_task) if (pMS->flash_task)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
Task_SetState (pMS->flash_task, TASK_EXIT); Task_SetState (pMS->flash_task, TASK_EXIT);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->flash_task = 0; pMS->flash_task = 0;
} }
DestroyDirEntryTable (ReleaseDirEntryTable (pMS->TeamDE)); DestroyDirEntryTable (ReleaseDirEntryTable (pMS->TeamDE));
@@ -1591,9 +1591,9 @@ DoMelee (PMELEE_STATE pMS)
{ {
pMS->Initialized = TRUE; pMS->Initialized = TRUE;
pMS->MeleeOption = START_MELEE; pMS->MeleeOption = START_MELEE;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
InitMelee (pMS); InitMelee (pMS);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
{ {
BYTE clut_buf[] = {FadeAllToColor}; BYTE clut_buf[] = {FadeAllToColor};
@@ -1603,10 +1603,10 @@ DoMelee (PMELEE_STATE pMS)
} }
else if (CurrentMenuState.cancel || CurrentMenuState.left) else if (CurrentMenuState.cancel || CurrentMenuState.left)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
InTime = GetTimeCounter (); InTime = GetTimeCounter ();
Deselect (pMS->MeleeOption); Deselect (pMS->MeleeOption);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->MeleeOption = EDIT_MELEE; pMS->MeleeOption = EDIT_MELEE;
pMS->Initialized = FALSE; pMS->Initialized = FALSE;
if (CurrentMenuState.cancel) if (CurrentMenuState.cancel)
@@ -1644,11 +1644,11 @@ DoMelee (PMELEE_STATE pMS)
if (NewMeleeOption != pMS->MeleeOption) if (NewMeleeOption != pMS->MeleeOption)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
Deselect (pMS->MeleeOption); Deselect (pMS->MeleeOption);
pMS->MeleeOption = NewMeleeOption; pMS->MeleeOption = NewMeleeOption;
Select (pMS->MeleeOption); Select (pMS->MeleeOption);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
if (CurrentMenuState.select || force_select) if (CurrentMenuState.select || force_select)
@@ -1665,9 +1665,9 @@ DoMelee (PMELEE_STATE pMS)
if (pMS->flash_task) if (pMS->flash_task)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
Task_SetState (pMS->flash_task, TASK_EXIT); Task_SetState (pMS->flash_task, TASK_EXIT);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->flash_task = 0; pMS->flash_task = 0;
} }
@@ -1681,9 +1681,9 @@ DoMelee (PMELEE_STATE pMS)
} }
do do
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BuildAndDrawShipList (pMS); BuildAndDrawShipList (pMS);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
WaitForSoundEnd (TFBSOUND_WAIT_ALL); WaitForSoundEnd (TFBSOUND_WAIT_ALL);
+2 -2
View File
@@ -516,7 +516,7 @@ DrawMenuStateStrings (BYTE beg_index, SWORD NewState)
if (NewState <= end_index - beg_index) if (NewState <= end_index - beg_index)
s.frame = SetAbsFrameIndex (PlayFrame, beg_index + NewState); s.frame = SetAbsFrameIndex (PlayFrame, beg_index + NewState);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (StatusContext); OldContext = SetContext (StatusContext);
GetContextClipRect (&r); GetContextClipRect (&r);
s.origin.x = RADAR_X - r.corner.x; s.origin.x = RADAR_X - r.corner.x;
@@ -631,6 +631,6 @@ DrawMenuStateStrings (BYTE beg_index, SWORD NewState)
&& flash_rect.extent.height == RADAR_HEIGHT) && flash_rect.extent.height == RADAR_HEIGHT)
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
+25 -25
View File
@@ -220,7 +220,7 @@ DoInstallModule (PMENU_STATE pMS)
pMS->InputFunc = DoInstallModule; pMS->InputFunc = DoInstallModule;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
ClearSISRect (CLEAR_SIS_RADAR); ClearSISRect (CLEAR_SIS_RADAR);
@@ -270,7 +270,7 @@ DoInstallModule (PMENU_STATE pMS)
} }
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
@@ -354,15 +354,15 @@ DoInstallModule (PMENU_STATE pMS)
else else
{ {
SetContext (StatusContext); SetContext (StatusContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings (PM_FUEL, pMS->CurState = OUTFIT_MODULES); DrawMenuStateStrings (PM_FUEL, pMS->CurState = OUTFIT_MODULES);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
pMS->InputFunc = DoOutfit; pMS->InputFunc = DoOutfit;
ClearSISRect (DRAW_SIS_DISPLAY); ClearSISRect (DRAW_SIS_DISPLAY);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (motion) else if (motion)
{ {
@@ -408,7 +408,7 @@ DoInstallModule (PMENU_STATE pMS)
|| (NewItem >= GUN_WEAPON && NewItem <= CANNON_WEAPON || (NewItem >= GUN_WEAPON && NewItem <= CANNON_WEAPON
&& pMS->delta_item > 0 && pMS->delta_item < 13))); && pMS->delta_item > 0 && pMS->delta_item < 13)));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (NewState < EMPTY_SLOT) if (NewState < EMPTY_SLOT)
{ {
if (NewItem != pMS->CurState) if (NewItem != pMS->CurState)
@@ -505,7 +505,7 @@ InitFlash:
else else
SetFlashRect (&pMS->flash_rect0, (FRAME)0); SetFlashRect (&pMS->flash_rect0, (FRAME)0);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
return (TRUE); return (TRUE);
@@ -519,7 +519,7 @@ ChangeFuelQuantity ()
if (CurrentMenuState.up) if (CurrentMenuState.up)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
if (GetFTankCapacity (&r.corner) > GLOBAL_SIS (FuelOnBoard) if (GetFTankCapacity (&r.corner) > GLOBAL_SIS (FuelOnBoard)
&& GLOBAL_SIS (ResUnits) >= && GLOBAL_SIS (ResUnits) >=
@@ -541,11 +541,11 @@ ChangeFuelQuantity ()
GetGaugeRect (&r, FALSE); GetGaugeRect (&r, FALSE);
SetFlashRect (&r, (FRAME)0); SetFlashRect (&r, (FRAME)0);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (CurrentMenuState.down) else if (CurrentMenuState.down)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
if (GLOBAL_SIS (FuelOnBoard)) if (GLOBAL_SIS (FuelOnBoard))
{ {
@@ -563,7 +563,7 @@ ChangeFuelQuantity ()
SetContext (StatusContext); SetContext (StatusContext);
GetGaugeRect (&r, FALSE); GetGaugeRect (&r, FALSE);
SetFlashRect (&r, (FRAME)0); SetFlashRect (&r, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
@@ -600,7 +600,7 @@ DoOutfit (PMENU_STATE pMS)
SetTransitionSource (NULL); SetTransitionSource (NULL);
BatchGraphics (); BatchGraphics ();
DrawSISFrame (); DrawSISFrame ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawSISMessage (GAME_STRING (STARBASE_STRING_BASE + 2)); DrawSISMessage (GAME_STRING (STARBASE_STRING_BASE + 2));
DrawSISTitle (GAME_STRING (STARBASE_STRING_BASE)); DrawSISTitle (GAME_STRING (STARBASE_STRING_BASE));
@@ -656,13 +656,13 @@ DoOutfit (PMENU_STATE pMS)
DrawStamp ((PSTAMP)&s); DrawStamp ((PSTAMP)&s);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings (PM_FUEL, pMS->CurState); DrawMenuStateStrings (PM_FUEL, pMS->CurState);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawFlagshipName (FALSE); DrawFlagshipName (FALSE);
if (optWhichFonts == OPT_PC) if (optWhichFonts == OPT_PC)
DrawFlagshipStats (); DrawFlagshipStats ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
{ {
RECT r; RECT r;
@@ -676,9 +676,9 @@ DoOutfit (PMENU_STATE pMS)
PlayMusic (pMS->hMusic, TRUE, 1); PlayMusic (pMS->hMusic, TRUE, 1);
UnbatchGraphics (); UnbatchGraphics ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
GLOBAL_SIS (FuelOnBoard) = GLOBAL_SIS (FuelOnBoard) =
(GLOBAL_SIS (FuelOnBoard) (GLOBAL_SIS (FuelOnBoard)
@@ -695,9 +695,9 @@ DoOutfit (PMENU_STATE pMS)
if (pMS->CurState == OUTFIT_DOFUEL) if (pMS->CurState == OUTFIT_DOFUEL)
{ {
pMS->CurState = OUTFIT_FUEL; pMS->CurState = OUTFIT_FUEL;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else else
{ {
@@ -719,18 +719,18 @@ ExitOutfit:
RECT r; RECT r;
pMS->CurState = OUTFIT_DOFUEL; pMS->CurState = OUTFIT_DOFUEL;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (StatusContext); SetContext (StatusContext);
GetGaugeRect (&r, FALSE); GetGaugeRect (&r, FALSE);
SetFlashRect (&r, (FRAME)0); SetFlashRect (&r, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
break; break;
} }
case OUTFIT_DOFUEL: case OUTFIT_DOFUEL:
pMS->CurState = OUTFIT_FUEL; pMS->CurState = OUTFIT_FUEL;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
break; break;
case OUTFIT_MODULES: case OUTFIT_MODULES:
pMS->CurState = EMPTY_SLOT + 2; pMS->CurState = EMPTY_SLOT + 2;
@@ -746,9 +746,9 @@ ExitOutfit:
if (GameOptions () == 0) if (GameOptions () == 0)
goto ExitOutfit; goto ExitOutfit;
DrawMenuStateStrings (PM_FUEL, pMS->CurState); DrawMenuStateStrings (PM_FUEL, pMS->CurState);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
break; break;
} }
} }
+5 -5
View File
@@ -119,7 +119,7 @@ GetMeleeStarShip (STARSHIPPTR LastStarShipPtr, COUNT which_player)
TimeOut = GetTimeCounter () + (ONE_SECOND * 4); TimeOut = GetTimeCounter () + (ONE_SECOND * 4);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
UpdateInputState (); UpdateInputState ();
PressState = AnyButtonPress (TRUE); PressState = AnyButtonPress (TRUE);
@@ -142,7 +142,7 @@ GetMeleeStarShip (STARSHIPPTR LastStarShipPtr, COUNT which_player)
ConfirmExit (); ConfirmExit ();
*/ */
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
return (0); return (0);
} }
@@ -243,7 +243,7 @@ GetMeleeStarShip (STARSHIPPTR LastStarShipPtr, COUNT which_player)
col = new_col; col = new_col;
PlaySoundEffect (MenuSounds, 0, NotPositional (), NULL, 0); PlaySoundEffect (MenuSounds, 0, NotPositional (), NULL, 0);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
ChangeSelection: ChangeSelection:
flash_rect.corner.x = PICK_X_OFFS flash_rect.corner.x = PICK_X_OFFS
+ ((ICON_WIDTH + 2) * col); + ((ICON_WIDTH + 2) * col);
@@ -293,12 +293,12 @@ ChangeSelection:
UnlockStarShip (&race_q[which_player], hBattleShip); UnlockStarShip (&race_q[which_player], hBattleShip);
} }
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
if (hBattleShip == 0) if (hBattleShip == 0)
+5 -5
View File
@@ -44,7 +44,7 @@ DoPickBattleShip (PMENU_STATE pMS)
pMS->Initialized = TRUE; pMS->Initialized = TRUE;
pMS->InputFunc = DoPickBattleShip; pMS->InputFunc = DoPickBattleShip;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
goto ChangeSelection; goto ChangeSelection;
} }
@@ -84,7 +84,7 @@ DoPickBattleShip (PMENU_STATE pMS)
else if (new_row == NUM_PICK_SHIP_ROWS) else if (new_row == NUM_PICK_SHIP_ROWS)
new_row = 0; new_row = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
#ifdef NEVER #ifdef NEVER
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0xA, 0xA, 0xA), 0x1D)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0xA, 0xA, 0xA), 0x1D));
@@ -211,7 +211,7 @@ ChangeSelection:
SetFlashRect ((RECT *)0, (FRAME)0); SetFlashRect ((RECT *)0, (FRAME)0);
SetFlashRect (&pMS->flash_rect0, (FRAME)0); SetFlashRect (&pMS->flash_rect0, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
@@ -247,11 +247,11 @@ OldContext = SetContext (SpaceContext);
MenuState.flash_rect1.corner = pick_r.corner; MenuState.flash_rect1.corner = pick_r.corner;
MenuState.flash_rect1.extent.width = 0; MenuState.flash_rect1.extent.width = 0;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMenuState = &MenuState; pMenuState = &MenuState;
DoInput ((PVOID)&MenuState, TRUE); DoInput ((PVOID)&MenuState, TRUE);
pMenuState = 0; pMenuState = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
+10 -10
View File
@@ -69,7 +69,7 @@ DrawCargoStrings (BYTE OldElement, BYTE NewElement)
CONTEXT OldContext; CONTEXT OldContext;
UNICODE rt_amount_buf[10]; UNICODE rt_amount_buf[10];
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (StatusContext); OldContext = SetContext (StatusContext);
SetContextFont (TinyFont); SetContextFont (TinyFont);
@@ -272,7 +272,7 @@ DrawCargoStrings (BYTE OldElement, BYTE NewElement)
UnbatchGraphics (); UnbatchGraphics ();
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static BOOLEAN static BOOLEAN
@@ -299,9 +299,9 @@ DoDiscardCargo (PMENU_STATE pMS)
} }
else if (cancel) else if (cancel)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
ClearSISRect (DRAW_SIS_DISPLAY); ClearSISRect (DRAW_SIS_DISPLAY);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (FALSE); return (FALSE);
} }
@@ -312,10 +312,10 @@ DoDiscardCargo (PMENU_STATE pMS)
--GLOBAL_SIS (ElementAmounts[pMS->CurState - 1]); --GLOBAL_SIS (ElementAmounts[pMS->CurState - 1]);
DrawCargoStrings ((BYTE)(pMS->CurState - 1), (BYTE)(pMS->CurState - 1)); DrawCargoStrings ((BYTE)(pMS->CurState - 1), (BYTE)(pMS->CurState - 1));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
--GLOBAL_SIS (TotalElementMass); --GLOBAL_SIS (TotalElementMass);
ShowRemainingCapacity (); ShowRemainingCapacity ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
else else
@@ -336,9 +336,9 @@ DoDiscardCargo (PMENU_STATE pMS)
{ {
SelectCargo: SelectCargo:
DrawCargoStrings ((BYTE)(pMS->CurState - 1), (BYTE)(NewState - 1)); DrawCargoStrings ((BYTE)(pMS->CurState - 1), (BYTE)(NewState - 1));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (GAME_STRING (NewState - 1 + (CARGO_STRING_BASE + 2))); DrawStatusMessage (GAME_STRING (NewState - 1 + (CARGO_STRING_BASE + 2)));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->CurState = NewState; pMS->CurState = NewState;
} }
@@ -354,9 +354,9 @@ Cargo (PMENU_STATE pMS)
--pMS->Initialized; --pMS->Initialized;
pMS->CurState = 1; pMS->CurState = 1;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage ((UNICODE *)~0); DrawStatusMessage ((UNICODE *)~0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DoInput ((PVOID)pMS, TRUE); DoInput ((PVOID)pMS, TRUE);
+6 -6
View File
@@ -40,7 +40,7 @@ DrawDevices (PMENU_STATE pMS, BYTE OldDevice, BYTE NewDevice)
RECT r; RECT r;
PBYTE pDeviceMap; PBYTE pDeviceMap;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (StatusContext); SetContext (StatusContext);
SetContextFont (TinyFont); SetContextFont (TinyFont);
@@ -174,7 +174,7 @@ DrawDevices (PMENU_STATE pMS, BYTE OldDevice, BYTE NewDevice)
font_DrawText (&t); font_DrawText (&t);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static UWORD static UWORD
@@ -450,7 +450,7 @@ DoManipulateDevices (PMENU_STATE pMS)
{ {
UWORD status; UWORD status;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
status = DeviceFailed ( status = DeviceFailed (
((PBYTE)pMS->CurFrame)[pMS->CurState - 1] ((PBYTE)pMS->CurFrame)[pMS->CurState - 1]
); );
@@ -461,7 +461,7 @@ DoManipulateDevices (PMENU_STATE pMS)
else if (HIBYTE (status) == 0) else if (HIBYTE (status) == 0)
PlaySoundEffect (SetAbsSoundIndex (MenuSounds, 3), PlaySoundEffect (SetAbsSoundIndex (MenuSounds, 3),
0, NotPositional (), NULL, GAME_SOUND_PRIORITY); 0, NotPositional (), NULL, GAME_SOUND_PRIORITY);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return ((BOOLEAN)NewState); return ((BOOLEAN)NewState);
} }
@@ -634,9 +634,9 @@ Devices (PMENU_STATE pMS)
if (GLOBAL_SIS (CrewEnlisted) != (COUNT)~0 if (GLOBAL_SIS (CrewEnlisted) != (COUNT)~0
&& !(GLOBAL (CurrentActivity) & CHECK_ABORT)) && !(GLOBAL (CurrentActivity) & CHECK_ABORT))
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
ClearSISRect (DRAW_SIS_DISPLAY); ClearSISRect (DRAW_SIS_DISPLAY);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (!GET_GAME_STATE (PORTAL_COUNTER) if (!GET_GAME_STATE (PORTAL_COUNTER)
&& !(GLOBAL (CurrentActivity) & START_ENCOUNTER) && !(GLOBAL (CurrentActivity) & START_ENCOUNTER)
+2 -2
View File
@@ -95,7 +95,7 @@ GenerateChmmr (BYTE control)
{ {
RECT r; RECT r;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
pSolarSysState->SysInfo.PlanetInfo.LanderFont = pSolarSysState->SysInfo.PlanetInfo.LanderFont =
CaptureFont ( CaptureFont (
@@ -130,7 +130,7 @@ GenerateChmmr (BYTE control)
)); ));
pSolarSysState->SysInfo.PlanetInfo.LanderFont = 0; pSolarSysState->SysInfo.PlanetInfo.LanderFont = 0;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
break; break;
} }
default: default:
+2 -2
View File
@@ -172,9 +172,9 @@ GenerateMycon (BYTE control)
break; break;
SET_GAME_STATE (SUN_DEVICE_UNGUARDED, 1); SET_GAME_STATE (SUN_DEVICE_UNGUARDED, 1);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RepairSISBorder (); RepairSISBorder ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
} }
+2 -2
View File
@@ -333,9 +333,9 @@ GenerateOrz (BYTE control)
if (OrzSurvivors) if (OrzSurvivors)
break; break;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RepairSISBorder (); RepairSISBorder ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
+2 -2
View File
@@ -85,7 +85,7 @@ ZapToUrquanEncounter (void)
dx = (SIZE)square_root ((long)dx * dx + (long)dy * dy) dx = (SIZE)square_root ((long)dx * dx + (long)dy * dy)
+ (FUEL_TANK_SCALE >> 1); + (FUEL_TANK_SCALE >> 1);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, -dx, 0); DeltaSISGauges (0, -dx, 0);
if (GLOBAL_SIS (FuelOnBoard) < 5 * FUEL_TANK_SCALE) if (GLOBAL_SIS (FuelOnBoard) < 5 * FUEL_TANK_SCALE)
{ {
@@ -95,7 +95,7 @@ ZapToUrquanEncounter (void)
} }
DrawSISMessage (NULL_PTR); DrawSISMessage (NULL_PTR);
DrawHyperCoords (EncounterPtr->SD.star_pt); DrawHyperCoords (EncounterPtr->SD.star_pt);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
UnlockEncounter (hEncounter); UnlockEncounter (hEncounter);
} }
+2 -2
View File
@@ -166,9 +166,9 @@ GenerateThradd (BYTE control)
|| (!GET_GAME_STATE (HELIX_UNPROTECTED) || (!GET_GAME_STATE (HELIX_UNPROTECTED)
&& (BYTE)(GET_GAME_STATE (THRADD_MISSION) - 1) >= 3)) && (BYTE)(GET_GAME_STATE (THRADD_MISSION) - 1) >= 3))
break; break;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RepairSISBorder (); RepairSISBorder ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
if (CurStarDescPtr->Index == AQUA_HELIX_DEFINED if (CurStarDescPtr->Index == AQUA_HELIX_DEFINED
+2 -2
View File
@@ -200,9 +200,9 @@ GenerateUtwig (BYTE control)
if (DruugeSurvivors) if (DruugeSurvivors)
break; break;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RepairSISBorder (); RepairSISBorder ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (BOMB_UNPROTECTED, 1); SET_GAME_STATE (BOMB_UNPROTECTED, 1);
} }
} }
+2 -2
View File
@@ -180,9 +180,9 @@ GenerateVUX (BYTE control)
|| !GET_GAME_STATE (ZEX_IS_DEAD)) || !GET_GAME_STATE (ZEX_IS_DEAD))
break; break;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RepairSISBorder (); RepairSISBorder ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
+30 -30
View File
@@ -1215,7 +1215,7 @@ ScrollPlanetSide (SIZE dx, SIZE dy, SIZE CountDown)
pSolarSysState->MenuState.flash_rect1.corner.y = HIWORD (TimeIn); pSolarSysState->MenuState.flash_rect1.corner.y = HIWORD (TimeIn);
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (SpaceContext); OldContext = SetContext (SpaceContext);
BatchGraphics (); BatchGraphics ();
@@ -1329,7 +1329,7 @@ ScrollPlanetSide (SIZE dx, SIZE dy, SIZE CountDown)
UnbatchGraphics (); UnbatchGraphics ();
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static void static void
@@ -1353,7 +1353,7 @@ AnimateLaunch (FRAME farray, BOOLEAN ShowPlanetSide)
RepairBackRect (&r); RepairBackRect (&r);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
#if 0 #if 0
if (ShowPlanetSide) if (ShowPlanetSide)
@@ -1370,7 +1370,7 @@ AnimateLaunch (FRAME farray, BOOLEAN ShowPlanetSide)
SleepThreadUntil (Time + (ONE_SECOND / 22)); SleepThreadUntil (Time + (ONE_SECOND / 22));
Time = GetTimeCounter (); Time = GetTimeCounter ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} while (--num_frames); } while (--num_frames);
GetFrameRect (s.frame, &r); GetFrameRect (s.frame, &r);
@@ -1386,9 +1386,9 @@ InitPlanetSide (void)
CONTEXT OldContext; CONTEXT OldContext;
DWORD Time; DWORD Time;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (RadarContext); OldContext = SetContext (RadarContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
Time = GetTimeCounter (); Time = GetTimeCounter ();
@@ -1397,9 +1397,9 @@ InitPlanetSide (void)
s.frame = SetAbsFrameIndex (LanderFrame[0], s.frame = SetAbsFrameIndex (LanderFrame[0],
(ANGLE_TO_FACING (FULL_CIRCLE) << 1) + 1); (ANGLE_TO_FACING (FULL_CIRCLE) << 1) + 1);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThread (ONE_SECOND / 15); SleepThread (ONE_SECOND / 15);
Time = GetTimeCounter (); Time = GetTimeCounter ();
@@ -1409,10 +1409,10 @@ InitPlanetSide (void)
{ {
SleepThreadUntil (Time + ONE_SECOND / 30); SleepThreadUntil (Time + ONE_SECOND / 30);
Time = GetTimeCounter (); Time = GetTimeCounter ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (-1, 0, 0); DeltaSISGauges (-1, 0, 0);
DeltaLanderCrew (1, 0); DeltaLanderCrew (1, 0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
SleepThreadUntil (Time + (ONE_SECOND / 15)); SleepThreadUntil (Time + (ONE_SECOND / 15));
@@ -1423,9 +1423,9 @@ InitPlanetSide (void)
else else
s.frame = SetAbsFrameIndex (s.frame, s.frame = SetAbsFrameIndex (s.frame,
(ANGLE_TO_FACING (FULL_CIRCLE) << 1) + 2); (ANGLE_TO_FACING (FULL_CIRCLE) << 1) + 2);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThreadUntil (Time + (ONE_SECOND / 15)); SleepThreadUntil (Time + (ONE_SECOND / 15));
Time = GetTimeCounter (); Time = GetTimeCounter ();
@@ -1436,18 +1436,18 @@ InitPlanetSide (void)
{ {
s.frame = SetAbsFrameIndex (s.frame, s.frame = SetAbsFrameIndex (s.frame,
(ANGLE_TO_FACING (FULL_CIRCLE) << 1) + 3); (ANGLE_TO_FACING (FULL_CIRCLE) << 1) + 3);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThreadUntil (Time + (ONE_SECOND / 15)); SleepThreadUntil (Time + (ONE_SECOND / 15));
Time = GetTimeCounter (); Time = GetTimeCounter ();
s.frame = IncFrameIndex (s.frame); s.frame = IncFrameIndex (s.frame);
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (GET_GAME_STATE (IMPROVED_LANDER_CARGO)) if (GET_GAME_STATE (IMPROVED_LANDER_CARGO))
{ {
@@ -1455,25 +1455,25 @@ InitPlanetSide (void)
Time = GetTimeCounter (); Time = GetTimeCounter ();
s.frame = SetAbsFrameIndex (s.frame, 59); s.frame = SetAbsFrameIndex (s.frame, 59);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
#ifndef SPIN_ON_LAUNCH #ifndef SPIN_ON_LAUNCH
pSolarSysState->PauseRotate = 1; pSolarSysState->PauseRotate = 1;
#endif #endif
SleepThreadUntil (Time + (ONE_SECOND / 15)); SleepThreadUntil (Time + (ONE_SECOND / 15));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
PlaySound (SetAbsSoundIndex (LanderSounds, LANDER_DEPARTS), PlaySound (SetAbsSoundIndex (LanderSounds, LANDER_DEPARTS),
NotPositional (), NULL, GAME_SOUND_PRIORITY + 1); NotPositional (), NULL, GAME_SOUND_PRIORITY + 1);
SetContext (SpaceContext); SetContext (SpaceContext);
AnimateLaunch (LanderFrame[5], FALSE); AnimateLaunch (LanderFrame[5], FALSE);
#ifdef SPIN_ON_LAUNCH #ifdef SPIN_ON_LAUNCH
pSolarSysState->PauseRotate = 1; pSolarSysState->PauseRotate = 1;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
#endif #endif
// Adjust pSolarSysState->MenuState.first_item by a random jitter. // Adjust pSolarSysState->MenuState.first_item by a random jitter.
#define RANDOM_MISS 64 #define RANDOM_MISS 64
@@ -1547,7 +1547,7 @@ InitPlanetSide (void)
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SET_GAME_STATE (PLANETARY_LANDING, 1); SET_GAME_STATE (PLANETARY_LANDING, 1);
} }
@@ -1858,7 +1858,7 @@ ReturnToOrbit (PRECT pRect)
{ {
CONTEXT OldContext; CONTEXT OldContext;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (SpaceContext); OldContext = SetContext (SpaceContext);
SetContextClipRect (pRect); SetContextClipRect (pRect);
@@ -1873,7 +1873,7 @@ ReturnToOrbit (PRECT pRect)
LoadIntoExtraScreen (pRect); LoadIntoExtraScreen (pRect);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
// SetPlanetTilt (0); // SetPlanetTilt (0);
} }
@@ -1994,9 +1994,9 @@ PlanetSide (PMENU_STATE pMS)
#endif /* NEVER */ #endif /* NEVER */
--GLOBAL_SIS (NumLanders); --GLOBAL_SIS (NumLanders);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawLanders (); DrawLanders ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
ReturnToOrbit (&r); ReturnToOrbit (&r);
} }
@@ -2029,7 +2029,7 @@ PlanetSide (PMENU_STATE pMS)
SleepThread (1); SleepThread (1);
#endif #endif
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
AnimateLaunch (LanderFrame[6], TRUE); AnimateLaunch (LanderFrame[6], TRUE);
@@ -2047,7 +2047,7 @@ PlanetSide (PMENU_STATE pMS)
DrawStorageBays (FALSE); DrawStorageBays (FALSE);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
GLOBAL_SIS (TotalBioMass) += PSD.BiologicalLevel; GLOBAL_SIS (TotalBioMass) += PSD.BiologicalLevel;
} }
@@ -2090,7 +2090,7 @@ InitLander (BYTE LanderFlags)
{ {
RECT r; RECT r;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (RadarContext); SetContext (RadarContext);
@@ -2182,5 +2182,5 @@ InitLander (BYTE LanderFlags)
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
+11 -10
View File
@@ -74,16 +74,17 @@ RotatePlanet (int x, int dx, int dy, COUNT scale_amt, UBYTE zoom_from, PRECT zoo
dy += ((zoom_from & 0x02) ? 1 : -1) * dy * (base - scale_amt) / base; dy += ((zoom_from & 0x02) ? 1 : -1) * dy * (base - scale_amt) / base;
} }
//LockCrossThreadMutex (GraphicsLock); //LockMutex (GraphicsLock);
// PauseRotate needs to be checked twice. It is first checked
// at the rotate_planet_task function to bypass rendering the
// planet (and thus slowinng down other parts of te code. It
// is checked here because it is possile that PauseRotate was
// set between then and now, and we don't want too push
// anything onto the DrawQueue in that case. If the locking
// operation is moved before the RenderLevelMasks call, one of
// the two PauseRotate checks can be removed.
// PauseRotate needs to be checked twice. It is first
// checked at the rotate_planet_task function to bypass
// rendering the planet (and thus slowinng down other
// parts of te code. It is checked here because it is possile
// that PauseRotate was set between then and now, and we don't
// want too push anything onto the DrawQueue in that case.
// If the LockCrossThreadMutex is moved before the RenderLevelMasks call,
// one of the two PauseRotate checks can be removed.
//if (((PSOLARSYS_STATE volatile)pSolarSysState)->PauseRotate !=1) //if (((PSOLARSYS_STATE volatile)pSolarSysState)->PauseRotate !=1)
{ {
OldContext = SetContext (SpaceContext); OldContext = SetContext (SpaceContext);
@@ -103,7 +104,7 @@ RotatePlanet (int x, int dx, int dy, COUNT scale_amt, UBYTE zoom_from, PRECT zoo
UnbatchGraphics (); UnbatchGraphics ();
SetContext (OldContext); SetContext (OldContext);
} }
//UnlockCrossThreadMutex (GraphicsLock); //UnlockMutex (GraphicsLock);
if (scale_amt && scale_amt != base) if (scale_amt && scale_amt != base)
{ {
GetFrameRect (pFrame[num_frames - 1], zoomr); GetFrameRect (pFrame[num_frames - 1], zoomr);
+8 -8
View File
@@ -61,7 +61,7 @@ void
LoadPlanet (BOOLEAN IsDefined) LoadPlanet (BOOLEAN IsDefined)
{ {
STAMP s; STAMP s;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BatchGraphics (); BatchGraphics ();
SetTransitionSource (NULL); SetTransitionSource (NULL);
@@ -106,9 +106,9 @@ LoadPlanet (BOOLEAN IsDefined)
{ {
if (LOBYTE (LastActivity) == 0) if (LOBYTE (LastActivity) == 0)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawSISFrame (); DrawSISFrame ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
else else
{ {
@@ -146,7 +146,7 @@ LoadPlanet (BOOLEAN IsDefined)
LoadIntoExtraScreen (&r); LoadIntoExtraScreen (&r);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (!PLRPlaying ((MUSIC_REF)~0)) if (!PLRPlaying ((MUSIC_REF)~0))
{ {
@@ -173,7 +173,7 @@ LoadPlanet (BOOLEAN IsDefined)
r.corner.y = SIS_ORG_Y; r.corner.y = SIS_ORG_Y;
r.extent.width = SIS_SCREEN_WIDTH; r.extent.width = SIS_SCREEN_WIDTH;
r.extent.height = SIS_SCREEN_HEIGHT; r.extent.height = SIS_SCREEN_HEIGHT;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
oldContext = SetContext (SpaceContext); oldContext = SetContext (SpaceContext);
DrawStarBackGround (TRUE); DrawStarBackGround (TRUE);
SetContext (oldContext); SetContext (oldContext);
@@ -183,7 +183,7 @@ LoadPlanet (BOOLEAN IsDefined)
ScreenTransition (3, &r); // How does this work? ScreenTransition (3, &r); // How does this work?
UnbatchGraphics (); UnbatchGraphics ();
LoadIntoExtraScreen (&r); LoadIntoExtraScreen (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
@@ -201,7 +201,7 @@ FreePlanet (void)
} }
StopMusic (); StopMusic ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
for (i = 0; i < sizeof (pSolarSysState->PlanetSideFrame) for (i = 0; i < sizeof (pSolarSysState->PlanetSideFrame)
/ sizeof (pSolarSysState->PlanetSideFrame[0]); ++i) / sizeof (pSolarSysState->PlanetSideFrame[0]); ++i)
@@ -253,6 +253,6 @@ FreePlanet (void)
pSolarSysState->SysInfo.PlanetInfo.LanderFont = 0; pSolarSysState->SysInfo.PlanetInfo.LanderFont = 0;
pSolarSysState->PauseRotate = 0; pSolarSysState->PauseRotate = 0;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
+2 -2
View File
@@ -1418,7 +1418,7 @@ rotate_planet_task (void *data)
// The PauseRotate needs to be placed after the lock, // The PauseRotate needs to be placed after the lock,
// to guarantee that PauseRotate doesn't change while waiting // to guarantee that PauseRotate doesn't change while waiting
// to acquire the graphics lock // to acquire the graphics lock
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (*(volatile UBYTE *)&pSS->PauseRotate !=1 if (*(volatile UBYTE *)&pSS->PauseRotate !=1
// if (((PSOLARSYS_STATE volatile)pSS)->MenuState.Initialized <= 3 // if (((PSOLARSYS_STATE volatile)pSS)->MenuState.Initialized <= 3
&& !(GLOBAL (CurrentActivity) & CHECK_ABORT)) && !(GLOBAL (CurrentActivity) & CHECK_ABORT))
@@ -1441,7 +1441,7 @@ rotate_planet_task (void *data)
} else } else
view_index++; view_index++;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
// If this frame hasn't been generted, generate it // If this frame hasn't been generted, generate it
if (! pSolarSysState->Orbit.isPFADefined[x]) { if (! pSolarSysState->Orbit.isPFADefined[x]) {
RenderLevelMasks (x); RenderLevelMasks (x);
+33 -33
View File
@@ -73,7 +73,7 @@ flash_cursor_func(void *data)
CONTEXT OldContext; CONTEXT OldContext;
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (SpaceContext); OldContext = SetContext (SpaceContext);
if (c == 0x00 || c == 0x1A) if (c == 0x00 || c == 0x1A)
@@ -86,7 +86,7 @@ flash_cursor_func(void *data)
SetContextForeGroundColor (OldColor); SetContextForeGroundColor (OldColor);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThreadUntil (TimeIn + (ONE_SECOND >> 4)); SleepThreadUntil (TimeIn + (ONE_SECOND >> 4));
} }
FinishTask (task); FinishTask (task);
@@ -254,7 +254,7 @@ DrawStarMap (COUNT race_update, PRECT pClipRect)
} }
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
draw_cursor = TRUE; draw_cursor = TRUE;
} }
@@ -528,7 +528,7 @@ wprintf ("%s\n", buf);
} }
if (draw_cursor) if (draw_cursor)
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static void static void
@@ -558,9 +558,9 @@ EraseCursor (COORD curs_x, COORD curs_y)
#else /* NEW */ #else /* NEW */
r.extent.height += r.corner.y & 1; r.extent.height += r.corner.y & 1;
r.corner.y &= ~1; r.corner.y &= ~1;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawStarMap (0, &r); DrawStarMap (0, &r);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
#endif /* OLD */ #endif /* OLD */
} }
@@ -730,11 +730,11 @@ DoMoveCursor (PMENU_STATE pMS)
} }
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
EraseCursor (pt.x, pt.y); EraseCursor (pt.x, pt.y);
// ClearDrawable (); // ClearDrawable ();
DrawCursor (s.origin.x, s.origin.y); DrawCursor (s.origin.x, s.origin.y);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
UpdateCursorInfo: UpdateCursorInfo:
@@ -798,7 +798,7 @@ UpdateCursorInfo:
fuel_required = 0; fuel_required = 0;
else else
fuel_required = square_root (f) + (FUEL_TANK_SCALE >> 1); fuel_required = square_root (f) + (FUEL_TANK_SCALE >> 1);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawHyperCoords (pMenuState->first_item); DrawHyperCoords (pMenuState->first_item);
if (last_buf == (UNICODE) ~0 if (last_buf == (UNICODE) ~0
|| (buf[0] && !last_buf) || (!buf[0] && last_buf)) || (buf[0] && !last_buf) || (!buf[0] && last_buf))
@@ -811,7 +811,7 @@ UpdateCursorInfo:
fuel_required / FUEL_TANK_SCALE, fuel_required / FUEL_TANK_SCALE,
(fuel_required % FUEL_TANK_SCALE) / 10); (fuel_required % FUEL_TANK_SCALE) / 10);
DrawStatusMessage (buf); DrawStatusMessage (buf);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
} }
@@ -1106,7 +1106,7 @@ DoStarMap (void)
if (MenuState.first_item.x == ~0 && MenuState.first_item.y == ~0) if (MenuState.first_item.x == ~0 && MenuState.first_item.y == ~0)
MenuState.first_item = universe; MenuState.first_item = universe;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
MenuState.InputFunc = DoMoveCursor; MenuState.InputFunc = DoMoveCursor;
@@ -1117,7 +1117,7 @@ DoStarMap (void)
if (GET_GAME_STATE (ARILOU_SPACE_SIDE) <= 1) if (GET_GAME_STATE (ARILOU_SPACE_SIDE) <= 1)
UpdateMap (); UpdateMap ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStarMap (0, (PRECT)-1); DrawStarMap (0, (PRECT)-1);
transition_pending = FALSE; transition_pending = FALSE;
@@ -1132,7 +1132,7 @@ DoStarMap (void)
UNIVERSE_TO_DISPY (pMenuState->first_item.y) UNIVERSE_TO_DISPY (pMenuState->first_item.y)
); );
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
OldMenuSounds = MenuSounds; OldMenuSounds = MenuSounds;
MenuSounds = 0; MenuSounds = 0;
@@ -1142,7 +1142,7 @@ DoStarMap (void)
pMenuState = 0; pMenuState = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawHyperCoords (universe); DrawHyperCoords (universe);
DrawSISMessage (NULL_PTR); DrawSISMessage (NULL_PTR);
@@ -1166,7 +1166,7 @@ DoFlagshipCommands (PMENU_STATE pMS)
else else
{ {
BOOLEAN select = CurrentMenuState.select; BOOLEAN select = CurrentMenuState.select;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
while (*(volatile BYTE *)&pMS->CurState == 0 while (*(volatile BYTE *)&pMS->CurState == 0
&& (*(volatile SIZE *)&pMS->Initialized & 1) && (*(volatile SIZE *)&pMS->Initialized & 1)
&& !(GLOBAL (CurrentActivity) && !(GLOBAL (CurrentActivity)
@@ -1174,11 +1174,11 @@ DoFlagshipCommands (PMENU_STATE pMS)
| CHECK_ABORT | CHECK_LOAD)) | CHECK_ABORT | CHECK_LOAD))
&& GLOBAL_SIS (CrewEnlisted) != (COUNT)~0) && GLOBAL_SIS (CrewEnlisted) != (COUNT)~0)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (pMS->CurState) if (pMS->CurState)
{ {
@@ -1199,9 +1199,9 @@ DoFlagshipCommands (PMENU_STATE pMS)
{ {
if (NewState != SCAN + 1 && NewState != (GAME_MENU) + 1) if (NewState != SCAN + 1 && NewState != (GAME_MENU) + 1)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
switch (NewState - 1) switch (NewState - 1)
@@ -1247,7 +1247,7 @@ DoFlagshipCommands (PMENU_STATE pMS)
{ {
BOOLEAN AutoPilotSet; BOOLEAN AutoPilotSet;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (++pMS->Initialized > 3) { if (++pMS->Initialized > 3) {
pSolarSysState->PauseRotate = 1; pSolarSysState->PauseRotate = 1;
RepairSISBorder (); RepairSISBorder ();
@@ -1258,7 +1258,7 @@ DoFlagshipCommands (PMENU_STATE pMS)
if (LOBYTE (GLOBAL (CurrentActivity)) == IN_HYPERSPACE if (LOBYTE (GLOBAL (CurrentActivity)) == IN_HYPERSPACE
|| (GLOBAL (CurrentActivity) & CHECK_ABORT)) || (GLOBAL (CurrentActivity) & CHECK_ABORT))
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (FALSE); return (FALSE);
} }
else if (pMS->Initialized <= 3) else if (pMS->Initialized <= 3)
@@ -1266,16 +1266,16 @@ DoFlagshipCommands (PMENU_STATE pMS)
ZoomSystem (); ZoomSystem ();
--pMS->Initialized; --pMS->Initialized;
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (!AutoPilotSet && pMS->Initialized >= 3) if (!AutoPilotSet && pMS->Initialized >= 3)
{ {
LoadPlanet (FALSE); LoadPlanet (FALSE);
--pMS->Initialized; --pMS->Initialized;
pSolarSysState->PauseRotate = 0; pSolarSysState->PauseRotate = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
break; break;
} }
} }
@@ -1291,17 +1291,17 @@ DoFlagshipCommands (PMENU_STATE pMS)
else if (pMS->flash_task) else if (pMS->flash_task)
{ {
FreePlanet (); FreePlanet ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
LoadSolarSys (); LoadSolarSys ();
ValidateOrbits (); ValidateOrbits ();
ZoomSystem (); ZoomSystem ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
pMS->CurState = 0; pMS->CurState = 0;
FlushInput (); FlushInput ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
break; break;
} }
@@ -1309,9 +1309,9 @@ DoFlagshipCommands (PMENU_STATE pMS)
; ;
else if (pMS->CurState) else if (pMS->CurState)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (select) if (select)
{ {
if (optWhichMenu != OPT_PC) if (optWhichMenu != OPT_PC)
@@ -1322,9 +1322,9 @@ DoFlagshipCommands (PMENU_STATE pMS)
} }
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings (PM_STARMAP, -NAVIGATION); DrawMenuStateStrings (PM_STARMAP, -NAVIGATION);
} }
} }
+10 -10
View File
@@ -94,7 +94,7 @@ MakeReport (SOUND ReadOutSounds, UNICODE *pStr, COUNT StrLen)
last_c = *pStr; last_c = *pStr;
Sleepy = TRUE; Sleepy = TRUE;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushInput (); FlushInput ();
goto InitPageCell; goto InitPageCell;
@@ -148,9 +148,9 @@ MakeReport (SOUND ReadOutSounds, UNICODE *pStr, COUNT StrLen)
font_DrawText (&t); font_DrawText (&t);
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
PlaySound (ReadOutSounds, NotPositional (), NULL, GAME_SOUND_PRIORITY); PlaySound (ReadOutSounds, NotPositional (), NULL, GAME_SOUND_PRIORITY);
@@ -174,7 +174,7 @@ MakeReport (SOUND ReadOutSounds, UNICODE *pStr, COUNT StrLen)
else if (AnyButtonPress (TRUE)) else if (AnyButtonPress (TRUE))
{ {
Sleepy = FALSE; Sleepy = FALSE;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BatchGraphics (); BatchGraphics ();
break; break;
} }
@@ -198,7 +198,7 @@ MakeReport (SOUND ReadOutSounds, UNICODE *pStr, COUNT StrLen)
if (!Sleepy) if (!Sleepy)
{ {
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
if (WaitAnyButtonOrQuit (TRUE)) if (WaitAnyButtonOrQuit (TRUE))
@@ -210,17 +210,17 @@ InitPageCell:
row_cells = 0; row_cells = 0;
if (StrLen) if (StrLen)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (!Sleepy) if (!Sleepy)
BatchGraphics (); BatchGraphics ();
ClearReportArea(); ClearReportArea();
SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0, 0x1F, 0), 0xFF)); SetContextForeGroundColor (BUILD_COLOR (MAKE_RGB15 (0, 0x1F, 0), 0xFF));
if (Sleepy) if (Sleepy)
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
void void
@@ -268,11 +268,11 @@ DoDiscoveryReport (SOUND ReadOutSounds)
#endif /* OLD */ #endif /* OLD */
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushInput (); FlushInput ();
while (AnyButtonPress (TRUE)) while (AnyButtonPress (TRUE))
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (pMenuState) if (pMenuState)
pMenuState->flash_rect0.corner = old_curs; pMenuState->flash_rect0.corner = old_curs;
+15 -15
View File
@@ -35,7 +35,7 @@ flash_ship_task(void *data)
COLOR OldColor; COLOR OldColor;
CONTEXT OldContext; CONTEXT OldContext;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
s.origin = pMenuState->first_item; s.origin = pMenuState->first_item;
StarShipPtr = (SHIP_FRAGMENTPTR)LockStarShip ( StarShipPtr = (SHIP_FRAGMENTPTR)LockStarShip (
&GLOBAL (built_ship_q), &GLOBAL (built_ship_q),
@@ -55,7 +55,7 @@ flash_ship_task(void *data)
DrawFilledStamp (&s); DrawFilledStamp (&s);
SetContextForeGroundColor (OldColor); SetContextForeGroundColor (OldColor);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThreadUntil (TimeIn + ONE_SECOND / 15); SleepThreadUntil (TimeIn + ONE_SECOND / 15);
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
} }
@@ -212,9 +212,9 @@ DoModifyRoster (PMENU_STATE pMS)
if (GLOBAL (CurrentActivity) & CHECK_ABORT) if (GLOBAL (CurrentActivity) & CHECK_ABORT)
{ {
pMS->CurFrame = 0; pMS->CurFrame = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RosterCleanup (pMS); RosterCleanup (pMS);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (FALSE); return (FALSE);
} }
@@ -231,24 +231,24 @@ DoModifyRoster (PMENU_STATE pMS)
pMS->Initialized = TRUE; pMS->Initialized = TRUE;
pMS->CurState = NewState = 0; pMS->CurState = NewState = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (StatusContext); SetContext (StatusContext);
goto SelectSupport; goto SelectSupport;
} }
else if (cancel && !(pMS->CurState & SHIP_TOGGLE)) else if (cancel && !(pMS->CurState & SHIP_TOGGLE))
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
RosterCleanup (pMS); RosterCleanup (pMS);
pMS->CurFrame = 0; pMS->CurFrame = 0;
DrawStatusMessage (NULL_PTR); DrawStatusMessage (NULL_PTR);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (FALSE); return (FALSE);
} }
else if (select || cancel) else if (select || cancel)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
pMS->CurState ^= SHIP_TOGGLE; pMS->CurState ^= SHIP_TOGGLE;
if (!(pMS->CurState & SHIP_TOGGLE)) if (!(pMS->CurState & SHIP_TOGGLE))
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
@@ -263,7 +263,7 @@ DoModifyRoster (PMENU_STATE pMS)
SetContext (StatusContext); SetContext (StatusContext);
SetFlashRect (&r, (FRAME)0); SetFlashRect (&r, (FRAME)0);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (pMS->CurState & SHIP_TOGGLE) else if (pMS->CurState & SHIP_TOGGLE)
{ {
@@ -272,9 +272,9 @@ DoModifyRoster (PMENU_STATE pMS)
sy = -1; sy = -1;
if (GLOBAL_SIS (CrewEnlisted)) if (GLOBAL_SIS (CrewEnlisted))
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSupportCrew (1); DeltaSupportCrew (1);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
else if (down) else if (down)
@@ -283,9 +283,9 @@ DoModifyRoster (PMENU_STATE pMS)
if (GLOBAL_SIS (CrewEnlisted) if (GLOBAL_SIS (CrewEnlisted)
< GetCPodCapacity (NULL_PTR)) < GetCPodCapacity (NULL_PTR))
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSupportCrew (-1); DeltaSupportCrew (-1);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
} }
@@ -335,7 +335,7 @@ DoModifyRoster (PMENU_STATE pMS)
if (NewState != pMS->CurState) if (NewState != pMS->CurState)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (StatusContext); SetContext (StatusContext);
s.origin = pMS->first_item; s.origin = pMS->first_item;
StarShipPtr = (SHIP_FRAGMENTPTR)LockStarShip ( StarShipPtr = (SHIP_FRAGMENTPTR)LockStarShip (
@@ -354,7 +354,7 @@ SelectSupport:
pMS->CurFrame = (FRAME)MatchSupportShip (pMS); pMS->CurFrame = (FRAME)MatchSupportShip (pMS);
DeltaSupportCrew (0); DeltaSupportCrew (0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->CurState = NewState; pMS->CurState = NewState;
} }
+80 -80
View File
@@ -68,7 +68,7 @@ EraseCoarseScan (void)
const int leftScanOffset = 5; const int leftScanOffset = 5;
const int rightScanOffset = 50; const int rightScanOffset = 50;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
r.corner.x = (SIS_SCREEN_WIDTH >> 1) - (160 >> 1); r.corner.x = (SIS_SCREEN_WIDTH >> 1) - (160 >> 1);
@@ -88,7 +88,7 @@ EraseCoarseScan (void)
r.extent.width = rightScanWidth; r.extent.width = rightScanWidth;
RepairBackRect (&r); RepairBackRect (&r);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static void static void
@@ -113,7 +113,7 @@ PrintCoarseScanPC (void)
RECT r; RECT r;
UNICODE buf[40]; UNICODE buf[40];
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
if (CurStarDescPtr->Index == SOL_DEFINED) if (CurStarDescPtr->Index == SOL_DEFINED)
@@ -176,7 +176,7 @@ PrintCoarseScanPC (void)
SetContextFont (MicroFont); SetContextFont (MicroFont);
font_DrawText (&t); font_DrawText (&t);
SetContextFont (TinyFont); SetContextFont (TinyFont);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
#define LEFT_SIDE_BASELINE_X_PC 5 #define LEFT_SIDE_BASELINE_X_PC 5
#define RIGHT_SIDE_BASELINE_X_PC (SIS_SCREEN_WIDTH - 75) #define RIGHT_SIDE_BASELINE_X_PC (SIS_SCREEN_WIDTH - 75)
@@ -185,7 +185,7 @@ PrintCoarseScanPC (void)
t.baseline.y = SCAN_BASELINE_Y_PC; t.baseline.y = SCAN_BASELINE_Y_PC;
t.align = ALIGN_LEFT; t.align = ALIGN_LEFT;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Orbit: ", LEFT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Orbit: ", LEFT_SIDE_BASELINE_X_PC);
temp = (SIZE)((pSolarSysState->SysInfo.PlanetInfo.PlanetToSunDist * 100L temp = (SIZE)((pSolarSysState->SysInfo.PlanetInfo.PlanetToSunDist * 100L
@@ -197,9 +197,9 @@ PrintCoarseScanPC (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING_PC; t.baseline.y += SCAN_LEADING_PC;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Atmo: ", LEFT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Atmo: ", LEFT_SIDE_BASELINE_X_PC);
if (pSolarSysState->SysInfo.PlanetInfo.AtmoDensity == GAS_GIANT_ATMOSPHERE) if (pSolarSysState->SysInfo.PlanetInfo.AtmoDensity == GAS_GIANT_ATMOSPHERE)
@@ -218,18 +218,18 @@ PrintCoarseScanPC (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING_PC; t.baseline.y += SCAN_LEADING_PC;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Temp: ", LEFT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Temp: ", LEFT_SIDE_BASELINE_X_PC);
wsprintf (buf, "%d^ c", pSolarSysState->SysInfo.PlanetInfo.SurfaceTemperature); wsprintf (buf, "%d^ c", pSolarSysState->SysInfo.PlanetInfo.SurfaceTemperature);
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING_PC; t.baseline.y += SCAN_LEADING_PC;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Weather: ", LEFT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Weather: ", LEFT_SIDE_BASELINE_X_PC);
if (pSolarSysState->SysInfo.PlanetInfo.AtmoDensity == 0) if (pSolarSysState->SysInfo.PlanetInfo.AtmoDensity == 0)
@@ -239,9 +239,9 @@ PrintCoarseScanPC (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING_PC; t.baseline.y += SCAN_LEADING_PC;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Tectonics: ", LEFT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Tectonics: ", LEFT_SIDE_BASELINE_X_PC);
if (PLANSIZE (pSolarSysState->SysInfo.PlanetInfo.PlanDataPtr->Type) == GAS_GIANT) if (PLANSIZE (pSolarSysState->SysInfo.PlanetInfo.PlanDataPtr->Type) == GAS_GIANT)
@@ -250,11 +250,11 @@ PrintCoarseScanPC (void)
wsprintf (buf, "Class %u", pSolarSysState->SysInfo.PlanetInfo.Tectonics + 1); wsprintf (buf, "Class %u", pSolarSysState->SysInfo.PlanetInfo.Tectonics + 1);
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
t.baseline.y = SCAN_BASELINE_Y_PC; t.baseline.y = SCAN_BASELINE_Y_PC;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Mass: ", RIGHT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Mass: ", RIGHT_SIDE_BASELINE_X_PC);
{ {
@@ -274,9 +274,9 @@ PrintCoarseScanPC (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING_PC; t.baseline.y += SCAN_LEADING_PC;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Radius: ", RIGHT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Radius: ", RIGHT_SIDE_BASELINE_X_PC);
if ((temp = pSolarSysState->SysInfo.PlanetInfo.PlanetRadius) >= 10 * 100) if ((temp = pSolarSysState->SysInfo.PlanetInfo.PlanetRadius) >= 10 * 100)
@@ -286,9 +286,9 @@ PrintCoarseScanPC (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING_PC; t.baseline.y += SCAN_LEADING_PC;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Gravity: ", RIGHT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Gravity: ", RIGHT_SIDE_BASELINE_X_PC);
if ((temp = pSolarSysState->SysInfo.PlanetInfo.SurfaceGravity) >= 10 * 100) if ((temp = pSolarSysState->SysInfo.PlanetInfo.SurfaceGravity) >= 10 * 100)
@@ -302,9 +302,9 @@ PrintCoarseScanPC (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING_PC; t.baseline.y += SCAN_LEADING_PC;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Day: ", RIGHT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Day: ", RIGHT_SIDE_BASELINE_X_PC);
if (pSolarSysState->SysInfo.PlanetInfo.RotationPeriod < 240 * 10) if (pSolarSysState->SysInfo.PlanetInfo.RotationPeriod < 240 * 10)
@@ -321,9 +321,9 @@ PrintCoarseScanPC (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING_PC; t.baseline.y += SCAN_LEADING_PC;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
PrintScanTitlePC (&t, &r, "Tilt: ", RIGHT_SIDE_BASELINE_X_PC); PrintScanTitlePC (&t, &r, "Tilt: ", RIGHT_SIDE_BASELINE_X_PC);
if ((temp = pSolarSysState->SysInfo.PlanetInfo.AxialTilt) < 0) if ((temp = pSolarSysState->SysInfo.PlanetInfo.AxialTilt) < 0)
@@ -331,7 +331,7 @@ PrintCoarseScanPC (void)
wsprintf (buf, "%u^", temp); wsprintf (buf, "%u^", temp);
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static void static void
@@ -344,7 +344,7 @@ PrintCoarseScan3DO (void)
UNICODE buf[40]; UNICODE buf[40];
extern FRAME SpaceJunkFrame; extern FRAME SpaceJunkFrame;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
if (CurStarDescPtr->Index == SOL_DEFINED) if (CurStarDescPtr->Index == SOL_DEFINED)
@@ -411,7 +411,7 @@ PrintCoarseScan3DO (void)
s.frame = SetAbsFrameIndex (SpaceJunkFrame, 20); s.frame = SetAbsFrameIndex (SpaceJunkFrame, 20);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
#define LEFT_SIDE_BASELINE_X (27 + (16 - SAFE_X)) #define LEFT_SIDE_BASELINE_X (27 + (16 - SAFE_X))
#define RIGHT_SIDE_BASELINE_X (SIS_SCREEN_WIDTH - LEFT_SIDE_BASELINE_X) #define RIGHT_SIDE_BASELINE_X (SIS_SCREEN_WIDTH - LEFT_SIDE_BASELINE_X)
@@ -421,7 +421,7 @@ PrintCoarseScan3DO (void)
t.baseline.y = SCAN_BASELINE_Y; t.baseline.y = SCAN_BASELINE_Y;
t.align = ALIGN_LEFT; t.align = ALIGN_LEFT;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
temp = (SIZE)((pSolarSysState->SysInfo.PlanetInfo.PlanetToSunDist * 100L temp = (SIZE)((pSolarSysState->SysInfo.PlanetInfo.PlanetToSunDist * 100L
+ (EARTH_RADIUS >> 1)) / EARTH_RADIUS); + (EARTH_RADIUS >> 1)) / EARTH_RADIUS);
@@ -432,9 +432,9 @@ PrintCoarseScan3DO (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING; t.baseline.y += SCAN_LEADING;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
if (pSolarSysState->SysInfo.PlanetInfo.AtmoDensity == GAS_GIANT_ATMOSPHERE) if (pSolarSysState->SysInfo.PlanetInfo.AtmoDensity == GAS_GIANT_ATMOSPHERE)
wsprintf (buf, "\x7f"); wsprintf (buf, "\x7f");
@@ -450,26 +450,26 @@ PrintCoarseScan3DO (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING; t.baseline.y += SCAN_LEADING;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
wsprintf (buf, "%d^", pSolarSysState->SysInfo.PlanetInfo.SurfaceTemperature); wsprintf (buf, "%d^", pSolarSysState->SysInfo.PlanetInfo.SurfaceTemperature);
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING; t.baseline.y += SCAN_LEADING;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
wsprintf (buf, "<%u>", pSolarSysState->SysInfo.PlanetInfo.AtmoDensity == 0 wsprintf (buf, "<%u>", pSolarSysState->SysInfo.PlanetInfo.AtmoDensity == 0
? 0 : (pSolarSysState->SysInfo.PlanetInfo.Weather + 1)); ? 0 : (pSolarSysState->SysInfo.PlanetInfo.Weather + 1));
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING; t.baseline.y += SCAN_LEADING;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
wsprintf (buf, "<%u>", wsprintf (buf, "<%u>",
PLANSIZE ( PLANSIZE (
@@ -478,13 +478,13 @@ PrintCoarseScan3DO (void)
? 0 : (pSolarSysState->SysInfo.PlanetInfo.Tectonics + 1)); ? 0 : (pSolarSysState->SysInfo.PlanetInfo.Tectonics + 1));
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
t.baseline.x = RIGHT_SIDE_BASELINE_X; t.baseline.x = RIGHT_SIDE_BASELINE_X;
t.baseline.y = SCAN_BASELINE_Y; t.baseline.y = SCAN_BASELINE_Y;
t.align = ALIGN_RIGHT; t.align = ALIGN_RIGHT;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
{ {
DWORD tr; DWORD tr;
@@ -503,9 +503,9 @@ PrintCoarseScan3DO (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING; t.baseline.y += SCAN_LEADING;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
if ((temp = pSolarSysState->SysInfo.PlanetInfo.PlanetRadius) >= 10 * 100) if ((temp = pSolarSysState->SysInfo.PlanetInfo.PlanetRadius) >= 10 * 100)
wsprintf (buf, "%u.%u&", temp / 100, (temp / 10) % 10); wsprintf (buf, "%u.%u&", temp / 100, (temp / 10) % 10);
@@ -514,9 +514,9 @@ PrintCoarseScan3DO (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING; t.baseline.y += SCAN_LEADING;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
if ((temp = pSolarSysState->SysInfo.PlanetInfo.SurfaceGravity) >= 10 * 100) if ((temp = pSolarSysState->SysInfo.PlanetInfo.SurfaceGravity) >= 10 * 100)
wsprintf (buf, "%u.%u&", temp / 100, (temp / 10) % 10); wsprintf (buf, "%u.%u&", temp / 100, (temp / 10) % 10);
@@ -529,9 +529,9 @@ PrintCoarseScan3DO (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING; t.baseline.y += SCAN_LEADING;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
if ((temp = pSolarSysState->SysInfo.PlanetInfo.AxialTilt) < 0) if ((temp = pSolarSysState->SysInfo.PlanetInfo.AxialTilt) < 0)
temp = -temp; temp = -temp;
@@ -539,9 +539,9 @@ PrintCoarseScan3DO (void)
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
t.baseline.y += SCAN_LEADING; t.baseline.y += SCAN_LEADING;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
t.pStr = buf; t.pStr = buf;
if (pSolarSysState->SysInfo.PlanetInfo.RotationPeriod < 240 * 10) if (pSolarSysState->SysInfo.PlanetInfo.RotationPeriod < 240 * 10)
{ {
@@ -556,7 +556,7 @@ PrintCoarseScan3DO (void)
} }
t.CharCount = (COUNT)~0; t.CharCount = (COUNT)~0;
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static void static void
@@ -569,7 +569,7 @@ SetPlanetLoc (POINT new_pt)
new_pt.x >>= MAG_SHIFT; new_pt.x >>= MAG_SHIFT;
new_pt.y >>= MAG_SHIFT; new_pt.y >>= MAG_SHIFT;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScanContext); SetContext (ScanContext);
s.origin.x = pMenuState->flash_rect0.corner.x - (FLASH_WIDTH >> 1); s.origin.x = pMenuState->flash_rect0.corner.x - (FLASH_WIDTH >> 1);
s.origin.y = pMenuState->flash_rect0.corner.y - (FLASH_HEIGHT >> 1); s.origin.y = pMenuState->flash_rect0.corner.y - (FLASH_HEIGHT >> 1);
@@ -583,7 +583,7 @@ SetPlanetLoc (POINT new_pt)
r.extent.width = FLASH_WIDTH; r.extent.width = FLASH_WIDTH;
r.extent.height = FLASH_HEIGHT; r.extent.height = FLASH_HEIGHT;
LoadDisplayPixmap (&r, pMenuState->flash_frame0); LoadDisplayPixmap (&r, pMenuState->flash_frame0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
} }
@@ -609,7 +609,7 @@ flash_planet_loc_func(void *data)
DWORD T; DWORD T;
CONTEXT OldContext; CONTEXT OldContext;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
T = GetTimeCounter (); T = GetTimeCounter ();
if (p.Object.Stamp.origin.x != pMenuState->flash_rect0.corner.x if (p.Object.Stamp.origin.x != pMenuState->flash_rect0.corner.x
|| p.Object.Stamp.origin.y != pMenuState->flash_rect0.corner.y) || p.Object.Stamp.origin.y != pMenuState->flash_rect0.corner.y)
@@ -621,7 +621,7 @@ flash_planet_loc_func(void *data)
{ {
if (T < TimeIn) if (T < TimeIn)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
continue; continue;
@@ -639,7 +639,7 @@ flash_planet_loc_func(void *data)
SetContext (OldContext); SetContext (OldContext);
TimeIn = T + (ONE_SECOND >> 4); TimeIn = T + (ONE_SECOND >> 4);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
} }
@@ -680,7 +680,7 @@ PickPlanetSide (PMENU_STATE pMS)
pMS->Initialized = TRUE; pMS->Initialized = TRUE;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScanContext); SetContext (ScanContext);
pMenuState->flash_rect0.corner.x = pMenuState->flash_rect0.corner.x =
pSolarSysState->MenuState.first_item.x >> MAG_SHIFT; pSolarSysState->MenuState.first_item.x >> MAG_SHIFT;
@@ -694,7 +694,7 @@ PickPlanetSide (PMENU_STATE pMS)
LoadDisplayPixmap (&r, pMenuState->flash_frame0); LoadDisplayPixmap (&r, pMenuState->flash_frame0);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
InitLander (0); InitLander (0);
@@ -709,9 +709,9 @@ PickPlanetSide (PMENU_STATE pMS)
MenuSounds = (SOUND)pMS->CurFrame; MenuSounds = (SOUND)pMS->CurFrame;
pMS->CurFrame = 0; pMS->CurFrame = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (NULL_PTR); DrawStatusMessage (NULL_PTR);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
FlushInput (); FlushInput ();
if (pMenuState->flash_task) if (pMenuState->flash_task)
@@ -735,13 +735,13 @@ PickPlanetSide (PMENU_STATE pMS)
EraseCoarseScan (); EraseCoarseScan ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (0, -(SIZE)fuel_required, 0); DeltaSISGauges (0, -(SIZE)fuel_required, 0);
SetContext (ScanContext); SetContext (ScanContext);
s.origin = pMenuState->flash_rect0.corner; s.origin = pMenuState->flash_rect0.corner;
s.frame = SetAbsFrameIndex (misc_data, FLASH_INDEX); s.frame = SetAbsFrameIndex (misc_data, FLASH_INDEX);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
PlanetSide (pMS); PlanetSide (pMS);
if (GLOBAL (CurrentActivity) & CHECK_ABORT) if (GLOBAL (CurrentActivity) & CHECK_ABORT)
@@ -796,9 +796,9 @@ PickPlanetSide (PMENU_STATE pMS)
} }
DrawMenuStateStrings (PM_MIN_SCAN, DISPATCH_SHUTTLE); DrawMenuStateStrings (PM_MIN_SCAN, DISPATCH_SHUTTLE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
ExitPlanetSide: ExitPlanetSide:
if (pMS->CurFrame) if (pMS->CurFrame)
@@ -962,12 +962,12 @@ DoScan (PMENU_STATE pMS)
} }
else if (cancel || (select && pMS->CurState == EXIT_SCAN)) else if (cancel || (select && pMS->CurState == EXIT_SCAN))
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
BatchGraphics (); BatchGraphics ();
DrawPlanet (SIS_SCREEN_WIDTH - MAP_WIDTH, SIS_SCREEN_HEIGHT - MAP_HEIGHT, 0, 0); DrawPlanet (SIS_SCREEN_WIDTH - MAP_WIDTH, SIS_SCREEN_HEIGHT - MAP_HEIGHT, 0, 0);
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
EraseCoarseScan (); EraseCoarseScan ();
// DrawMenuStateStrings (PM_SCAN, SCAN); // DrawMenuStateStrings (PM_SCAN, SCAN);
@@ -1004,18 +1004,18 @@ DoScan (PMENU_STATE pMS)
GAME_STRING (NAVIGATION_STRING_BASE + 5), GAME_STRING (NAVIGATION_STRING_BASE + 5),
fuel_required / FUEL_TANK_SCALE, fuel_required / FUEL_TANK_SCALE,
((fuel_required % FUEL_TANK_SCALE) + 5) / 10); ((fuel_required % FUEL_TANK_SCALE) + 5) / 10);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
ClearSISRect (CLEAR_SIS_RADAR); ClearSISRect (CLEAR_SIS_RADAR);
DrawStatusMessage (buf); DrawStatusMessage (buf);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScanContext); SetContext (ScanContext);
BatchGraphics (); BatchGraphics ();
DrawPlanet (0, 0, 0, 0); DrawPlanet (0, 0, 0, 0);
DrawScannedObjects (FALSE); DrawScannedObjects (FALSE);
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->Initialized = FALSE; pMS->Initialized = FALSE;
pMS->CurFrame = 0; pMS->CurFrame = 0;
@@ -1048,7 +1048,7 @@ DoScan (PMENU_STATE pMS)
pMS->delta_item = (SIZE)pSolarSysState->CurNode; pMS->delta_item = (SIZE)pSolarSysState->CurNode;
t.pStr = GAME_STRING (SCAN_STRING_BASE + min_scan); t.pStr = GAME_STRING (SCAN_STRING_BASE + min_scan);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
r.corner.x = 0; r.corner.x = 0;
r.corner.y = t.baseline.y - 10; r.corner.y = t.baseline.y - 10;
@@ -1078,7 +1078,7 @@ DoScan (PMENU_STATE pMS)
font_DrawText (&t); font_DrawText (&t);
SetContext (ScanContext); SetContext (ScanContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
{ {
DWORD rgb; DWORD rgb;
@@ -1096,15 +1096,15 @@ DoScan (PMENU_STATE pMS)
break; break;
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BatchGraphics (); BatchGraphics ();
DrawPlanet (0, 0, 0, 0); DrawPlanet (0, 0, 0, 0);
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
PressState = AnyButtonPress (TRUE); PressState = AnyButtonPress (TRUE);
WaitTime = (ONE_SECOND << 1) / MAP_HEIGHT; WaitTime = (ONE_SECOND << 1) / MAP_HEIGHT;
// LockCrossThreadMutex (GraphicsLock); // LockMutex (GraphicsLock);
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
for (i = 0; i < MAP_HEIGHT + NUM_FLASH_COLORS + 1; i++) for (i = 0; i < MAP_HEIGHT + NUM_FLASH_COLORS + 1; i++)
{ {
@@ -1116,7 +1116,7 @@ DoScan (PMENU_STATE pMS)
} }
if (ButtonState) if (ButtonState)
i = -i; i = -i;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BatchGraphics (); BatchGraphics ();
DrawPlanet (0, 0, i, rgb); DrawPlanet (0, 0, i, rgb);
if (i < 0) if (i < 0)
@@ -1124,19 +1124,19 @@ DoScan (PMENU_STATE pMS)
if (pMS->delta_item) if (pMS->delta_item)
DrawScannedStuff (i, min_scan); DrawScannedStuff (i, min_scan);
UnbatchGraphics (); UnbatchGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
// FlushGraphics (); // FlushGraphics ();
SleepThreadUntil (TimeIn + WaitTime); SleepThreadUntil (TimeIn + WaitTime);
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
} }
// UnlockCrossThreadMutex (GraphicsLock); // UnlockMutex (GraphicsLock);
pSolarSysState->Tint_rgb = 0; pSolarSysState->Tint_rgb = 0;
} }
} while (++min_scan <= max_scan); } while (++min_scan <= max_scan);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
r.corner.x = 0; r.corner.x = 0;
r.corner.y = (SIS_SCREEN_HEIGHT - MAP_HEIGHT - 7) - 10; r.corner.y = (SIS_SCREEN_HEIGHT - MAP_HEIGHT - 7) - 10;
@@ -1149,12 +1149,12 @@ DoScan (PMENU_STATE pMS)
{ {
DrawPlanet (0, 0, 0, 0); DrawPlanet (0, 0, 0, 0);
DrawScannedObjects (FALSE); DrawScannedObjects (FALSE);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings (PM_MIN_SCAN, pMS->CurState = DISPATCH_SHUTTLE); DrawMenuStateStrings (PM_MIN_SCAN, pMS->CurState = DISPATCH_SHUTTLE);
} }
else else
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pSolarSysState->MenuState.Initialized -= 4; pSolarSysState->MenuState.Initialized -= 4;
pSolarSysState->PauseRotate = 0; pSolarSysState->PauseRotate = 0;
@@ -1208,7 +1208,7 @@ ScanSystem (void)
pSolarSysState->MenuState.first_item.x = (MAP_WIDTH >> 1) << MAG_SHIFT; pSolarSysState->MenuState.first_item.x = (MAP_WIDTH >> 1) << MAG_SHIFT;
pSolarSysState->MenuState.first_item.y = (MAP_HEIGHT >> 1) << MAG_SHIFT; pSolarSysState->MenuState.first_item.y = (MAP_HEIGHT >> 1) << MAG_SHIFT;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
ScanContext = CaptureContext (CreateContext ()); ScanContext = CaptureContext (CreateContext ());
SetContext (ScanContext); SetContext (ScanContext);
MenuState.flash_rect0.extent.width = FLASH_WIDTH; MenuState.flash_rect0.extent.width = FLASH_WIDTH;
@@ -1224,7 +1224,7 @@ ScanSystem (void)
r.extent.height = MAP_HEIGHT; r.extent.height = MAP_HEIGHT;
SetContextClipRect (&r); SetContextClipRect (&r);
DrawScannedObjects (FALSE); DrawScannedObjects (FALSE);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
DrawMenuStateStrings (PM_MIN_SCAN, MenuState.CurState); DrawMenuStateStrings (PM_MIN_SCAN, MenuState.CurState);
@@ -1240,12 +1240,12 @@ ScanSystem (void)
if (ScanContext) if (ScanContext)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
DestroyDrawable (ReleaseDrawable (MenuState.flash_frame0)); DestroyDrawable (ReleaseDrawable (MenuState.flash_frame0));
DestroyContext (ReleaseContext (ScanContext)); DestroyContext (ReleaseContext (ScanContext));
ScanContext = 0; ScanContext = 0;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
+31 -31
View File
@@ -339,18 +339,18 @@ FreeSolarSys (void)
{ {
ConcludeTask (pSolarSysState->MenuState.flash_task); ConcludeTask (pSolarSysState->MenuState.flash_task);
pSolarSysState->MenuState.flash_task = 0; pSolarSysState->MenuState.flash_task = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD))) if (!(GLOBAL (CurrentActivity) & (CHECK_ABORT | CHECK_LOAD)))
{ {
extern void SaveFlagshipState (void); extern void SaveFlagshipState (void);
SaveFlagshipState (); SaveFlagshipState ();
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
@@ -358,7 +358,7 @@ FreeSolarSys (void)
// FreeIPData (); // FreeIPData ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
static void static void
@@ -1024,7 +1024,7 @@ int IPtask_func(void* data)
RECT r; RECT r;
InnerSystem = FALSE; InnerSystem = FALSE;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
while ((pSolarSysState->MenuState.Initialized > 1 while ((pSolarSysState->MenuState.Initialized > 1
|| (GLOBAL (CurrentActivity) || (GLOBAL (CurrentActivity)
& (START_ENCOUNTER | END_INTERPLANETARY & (START_ENCOUNTER | END_INTERPLANETARY
@@ -1033,15 +1033,15 @@ int IPtask_func(void* data)
&& !Task_ReadState (task, TASK_EXIT)) && !Task_ReadState (task, TASK_EXIT))
{ {
select = cancel = FALSE; select = cancel = FALSE;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
NextTime = GetTimeCounter (); NextTime = GetTimeCounter ();
} }
if (Task_ReadState (task, TASK_EXIT)) if (Task_ReadState (task, TASK_EXIT))
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
break; break;
} }
@@ -1163,7 +1163,7 @@ TheMess:
} }
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (Task_ReadState (task, TASK_EXIT)) if (Task_ReadState (task, TASK_EXIT))
{ {
@@ -1190,20 +1190,20 @@ TheMess:
MenuTransition = DEBOUNCE_DELAY; MenuTransition = DEBOUNCE_DELAY;
SuspendGameClock (); SuspendGameClock ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStatusMessage (NULL_PTR); DrawStatusMessage (NULL_PTR);
if (LastActivity == CHECK_LOAD) if (LastActivity == CHECK_LOAD)
pSolarSysState->MenuState.CurState = (ROSTER + 1) + 1; pSolarSysState->MenuState.CurState = (ROSTER + 1) + 1;
else else
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings (PM_STARMAP, STARMAP); DrawMenuStateStrings (PM_STARMAP, STARMAP);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
pSolarSysState->MenuState.CurState = STARMAP + 1; pSolarSysState->MenuState.CurState = STARMAP + 1;
} }
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
FlushInput (); FlushInput ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
FinishTask (task); FinishTask (task);
@@ -1213,10 +1213,10 @@ TheMess:
static void static void
DrawInnerSystem (void) DrawInnerSystem (void)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawSISTitle (GLOBAL_SIS (PlanetName)); DrawSISTitle (GLOBAL_SIS (PlanetName));
DrawSystem (pSolarSysState->pBaseDesc->pPrevDesc->radius, TRUE); DrawSystem (pSolarSysState->pBaseDesc->pPrevDesc->radius, TRUE);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
BOOLEAN BOOLEAN
@@ -1276,7 +1276,7 @@ StartGroups:
{ {
DrawMenuStateStrings (PM_STARMAP, -(PM_NAVIGATE - PM_SCAN)); DrawMenuStateStrings (PM_STARMAP, -(PM_NAVIGATE - PM_SCAN));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
RepairSISBorder (); RepairSISBorder ();
InitDisplayList (); InitDisplayList ();
@@ -1293,7 +1293,7 @@ StartGroups:
pSolarSysState->MenuState.flash_task = pSolarSysState->MenuState.flash_task =
AssignTask (IPtask_func, 6144, AssignTask (IPtask_func, 6144,
"flash solar system menu"); "flash solar system menu");
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (!PLRPlaying ((MUSIC_REF)~0) && LastActivity != CHECK_LOAD) if (!PLRPlaying ((MUSIC_REF)~0) && LastActivity != CHECK_LOAD)
{ {
@@ -1308,14 +1308,14 @@ StartGroups:
draw_sys_flags &= ~UNBATCH_SYS; draw_sys_flags &= ~UNBATCH_SYS;
UnbatchGraphics (); UnbatchGraphics ();
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
while (pSolarSysState->SunDesc[0].radius == (MAX_ZOOM_RADIUS << 1)) while (pSolarSysState->SunDesc[0].radius == (MAX_ZOOM_RADIUS << 1))
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
XFormColorMap ((COLORMAPPTR)clut_buf, ONE_SECOND / 2); XFormColorMap ((COLORMAPPTR)clut_buf, ONE_SECOND / 2);
} }
} }
@@ -1368,11 +1368,11 @@ StartGroups:
else else
{ {
DrawMenuStateStrings (PM_SCAN, SCAN); DrawMenuStateStrings (PM_SCAN, SCAN);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
pSolarSysState->MenuState.CurState = SCAN + 1; pSolarSysState->MenuState.CurState = SCAN + 1;
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
FlushInput (); FlushInput ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
} }
@@ -1383,11 +1383,11 @@ InitSolarSys (void)
BOOLEAN InnerSystem; BOOLEAN InnerSystem;
BOOLEAN Reentry; BOOLEAN Reentry;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
LoadIPData (); LoadIPData ();
LoadLanderData (); LoadLanderData ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pSolarSysState->MenuState.InputFunc = DoFlagshipCommands; pSolarSysState->MenuState.InputFunc = DoFlagshipCommands;
@@ -1440,9 +1440,9 @@ InitSolarSys (void)
} }
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
ClearSISRect (DRAW_SIS_DISPLAY); ClearSISRect (DRAW_SIS_DISPLAY);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LastActivity &= ~CHECK_LOAD; LastActivity &= ~CHECK_LOAD;
} }
@@ -1451,12 +1451,12 @@ InitSolarSys (void)
// Enabled graphics synchronization again, as in 3DO code originally. // Enabled graphics synchronization again, as in 3DO code originally.
// This should fix the 'entering star' lockup/messed graphics problems. // This should fix the 'entering star' lockup/messed graphics problems.
// 2002/11/30 by Mika // 2002/11/30 by Mika
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawSISMessage (NULL_PTR); DrawSISMessage (NULL_PTR);
SetContext (SpaceContext); SetContext (SpaceContext);
SetContextFGFrame (Screen); SetContextFGFrame (Screen);
SetContextBackGroundColor (BLACK_COLOR); SetContextBackGroundColor (BLACK_COLOR);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (InnerSystem) if (InnerSystem)
{ {
@@ -1473,9 +1473,9 @@ InitSolarSys (void)
} }
else else
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawHyperCoords (CurStarDescPtr->star_pt); /* Adjust position */ DrawHyperCoords (CurStarDescPtr->star_pt); /* Adjust position */
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
/* force a redraw */ /* force a redraw */
pSolarSysState->SunDesc[0].radius = MAX_ZOOM_RADIUS << 1; pSolarSysState->SunDesc[0].radius = MAX_ZOOM_RADIUS << 1;
+8 -8
View File
@@ -53,7 +53,7 @@ DrawRestartMenu (BYTE OldState, BYTE NewState, FRAME f)
TEXT t; TEXT t;
UNICODE buf[64]; UNICODE buf[64];
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (ScreenContext); SetContext (ScreenContext);
r.corner.x = r.corner.y = r.extent.width = r.extent.height = 0; r.corner.x = r.corner.y = r.extent.width = r.extent.height = 0;
SetContextClipRect (&r); SetContextClipRect (&r);
@@ -76,7 +76,7 @@ DrawRestartMenu (BYTE OldState, BYTE NewState, FRAME f)
SetContextForeGroundColor (WHITE_COLOR); SetContextForeGroundColor (WHITE_COLOR);
font_DrawText (&t); font_DrawText (&t);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
(void) OldState; /* Satisfying compiler (unused parameter) */ (void) OldState; /* Satisfying compiler (unused parameter) */
} }
@@ -155,9 +155,9 @@ else if (InputState & DEVICE_EXIT) return (FALSE);
break; break;
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (FALSE); return (FALSE);
} }
@@ -282,18 +282,18 @@ LastActivity = WON_LAST_BATTLE;
BatchGraphics (); BatchGraphics ();
ClearDrawable (); ClearDrawable ();
FlushColorXForms (); FlushColorXForms ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
UnbatchGraphics (); UnbatchGraphics ();
FlushInput (); FlushInput ();
GLOBAL (CurrentActivity) &= ~CHECK_ABORT; GLOBAL (CurrentActivity) &= ~CHECK_ABORT;
DoInput ((PVOID)&MenuState, TRUE); DoInput ((PVOID)&MenuState, TRUE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)0, (FRAME)0); SetFlashRect ((PRECT)0, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DestroyDrawable (ReleaseDrawable (s.frame)); DestroyDrawable (ReleaseDrawable (s.frame));
if (GLOBAL (CurrentActivity) == (ACTIVITY)~0) if (GLOBAL (CurrentActivity) == (ACTIVITY)~0)
+4 -4
View File
@@ -209,11 +209,11 @@ SaveProblem (void)
STAMP s; STAMP s;
CONTEXT OldContext; CONTEXT OldContext;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (SpaceContext); OldContext = SetContext (SpaceContext);
SaveProblemMessage (&s); SaveProblemMessage (&s);
FlushGraphics (); FlushGraphics ();
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
while (AnyButtonPress (FALSE)); while (AnyButtonPress (FALSE));
do do
@@ -223,13 +223,13 @@ SaveProblem (void)
} while (!(CurrentMenuState.select || CurrentMenuState.special || } while (!(CurrentMenuState.select || CurrentMenuState.special ||
(GLOBAL (CurrentActivity) & CHECK_ABORT))); (GLOBAL (CurrentActivity) & CHECK_ABORT)));
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
BatchGraphics (); BatchGraphics ();
DrawStamp (&s); DrawStamp (&s);
UnbatchGraphics (); UnbatchGraphics ();
SetContext (OldContext); SetContext (OldContext);
DestroyDrawable (ReleaseDrawable (s.frame)); DestroyDrawable (ReleaseDrawable (s.frame));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return; return;
} }
+1 -1
View File
@@ -47,7 +47,7 @@ FONT StarConFont, MicroFont, TinyFont;
QUEUE race_q[NUM_PLAYERS]; QUEUE race_q[NUM_PLAYERS];
SOUND MenuSounds, GameSounds; SOUND MenuSounds, GameSounds;
FRAME ActivityFrame, status, flagship_status, misc_data; FRAME ActivityFrame, status, flagship_status, misc_data;
CrossThreadMutex GraphicsLock; Mutex GraphicsLock;
CondVar RenderingCond; CondVar RenderingCond;
STRING GameStrings; STRING GameStrings;
+2 -2
View File
@@ -200,10 +200,10 @@ ship_preprocess (PELEMENT ElementPtr)
InitIntersectStartPoint (ElementPtr); InitIntersectStartPoint (ElementPtr);
InitIntersectEndPoint (ElementPtr); InitIntersectEndPoint (ElementPtr);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
ResumeGameClock (); ResumeGameClock ();
SetGameClockRate (HYPERSPACE_CLOCK_RATE); SetGameClockRate (HYPERSPACE_CLOCK_RATE);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
if (hyper_transition (ElementPtr)) if (hyper_transition (ElementPtr))
return; return;
+36 -36
View File
@@ -92,7 +92,7 @@ int hangar_anim_func (void* data)
CONTEXT OldContext; CONTEXT OldContext;
RECT OldClipRect; RECT OldClipRect;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (ScreenContext); OldContext = SetContext (ScreenContext);
GetContextClipRect (&OldClipRect); GetContextClipRect (&OldClipRect);
SetContextClipRect (&ClipRect); SetContextClipRect (&ClipRect);
@@ -103,7 +103,7 @@ int hangar_anim_func (void* data)
SetContextClipRect (&OldClipRect); SetContextClipRect (&OldClipRect);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThreadUntil (TimeIn + ONE_SECOND / HANGAR_ANIM_RATE); SleepThreadUntil (TimeIn + ONE_SECOND / HANGAR_ANIM_RATE);
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
@@ -207,7 +207,7 @@ DrawRaceStrings (BYTE NewRaceItem)
STAMP s; STAMP s;
CONTEXT OldContext; CONTEXT OldContext;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (StatusContext); OldContext = SetContext (StatusContext);
GetContextClipRect (&r); GetContextClipRect (&r);
@@ -272,7 +272,7 @@ DrawRaceStrings (BYTE NewRaceItem)
} }
//SetFlashRect ((PRECT)~0L, (FRAME)0); //SetFlashRect ((PRECT)~0L, (FRAME)0);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
#define SHIP_WIN_WIDTH 34 #define SHIP_WIN_WIDTH 34
@@ -497,7 +497,7 @@ ShowCombatShip (COUNT which_window, SHIP_FRAGMENTPTR YankedStarShipPtr)
while (AnyButtonPress (FALSE)) while (AnyButtonPress (FALSE))
TaskSwitch(); TaskSwitch();
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (OffScreenContext); OldContext = SetContext (OffScreenContext);
SetContextFGFrame (Screen); SetContextFGFrame (Screen);
SetContextBackGroundColor (BLACK_COLOR); SetContextBackGroundColor (BLACK_COLOR);
@@ -541,7 +541,7 @@ ShowCombatShip (COUNT which_window, SHIP_FRAGMENTPTR YankedStarShipPtr)
UnbatchGraphics (); UnbatchGraphics ();
SetContextClipRect (NULL_PTR); SetContextClipRect (NULL_PTR);
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
} }
@@ -571,9 +571,9 @@ CrewTransaction (SIZE crew_delta)
{ {
GLOBAL (CrewCost) += 2; GLOBAL (CrewCost) += 2;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings (PM_CREW, SHIPYARD_CREW); DrawMenuStateStrings (PM_CREW, SHIPYARD_CREW);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
} }
else else
@@ -583,9 +583,9 @@ CrewTransaction (SIZE crew_delta)
{ {
GLOBAL (CrewCost) -= 2; GLOBAL (CrewCost) -= 2;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings (PM_CREW, SHIPYARD_CREW); DrawMenuStateStrings (PM_CREW, SHIPYARD_CREW);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
} }
if (!(ActivateStarShip ( if (!(ActivateStarShip (
@@ -634,7 +634,7 @@ DoModifyShips (PMENU_STATE pMS)
pMS->CurState = MAKE_BYTE (0, 0xF); pMS->CurState = MAKE_BYTE (0, 0xF);
pMS->delta_item = 0; pMS->delta_item = 0;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
goto ChangeFlashRect; goto ChangeFlashRect;
} }
@@ -710,7 +710,7 @@ DoModifyShips (PMENU_STATE pMS)
); );
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
#ifdef WANT_SHIP_SPINS #ifdef WANT_SHIP_SPINS
if (special) if (special)
@@ -745,7 +745,7 @@ DoModifyShips (PMENU_STATE pMS)
COUNT Index; COUNT Index;
// SetFlashRect (NULL_PTR, (FRAME)0); // SetFlashRect (NULL_PTR, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
if (!(pMS->delta_item & MODIFY_CREW_FLAG)) if (!(pMS->delta_item & MODIFY_CREW_FLAG))
{ {
pMS->delta_item = MODIFY_CREW_FLAG; pMS->delta_item = MODIFY_CREW_FLAG;
@@ -771,12 +771,12 @@ DoModifyShips (PMENU_STATE pMS)
{ {
ShowCombatShip ((COUNT)pMS->CurState, (SHIP_FRAGMENTPTR)0); ShowCombatShip ((COUNT)pMS->CurState, (SHIP_FRAGMENTPTR)0);
//Reset flash rectangle //Reset flash rectangle
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings (PM_CREW, SHIPYARD_CREW); DrawMenuStateStrings (PM_CREW, SHIPYARD_CREW);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DeltaSISGauges (UNDEFINED_DELTA, UNDEFINED_DELTA, DeltaSISGauges (UNDEFINED_DELTA, UNDEFINED_DELTA,
-((int)ShipCost[Index])); -((int)ShipCost[Index]));
r.corner.x = pMS->flash_rect0.corner.x; r.corner.x = pMS->flash_rect0.corner.x;
@@ -786,7 +786,7 @@ DoModifyShips (PMENU_STATE pMS)
r.extent.height = 5; r.extent.height = 5;
SetContext (SpaceContext); SetContext (SpaceContext);
SetFlashRect (&r, (FRAME)0); SetFlashRect (&r, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
return (TRUE); return (TRUE);
@@ -814,7 +814,7 @@ DoModifyShips (PMENU_STATE pMS)
return (TRUE); return (TRUE);
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
goto ChangeFlashRect; goto ChangeFlashRect;
} }
else if (select || cancel) else if (select || cancel)
@@ -824,9 +824,9 @@ DoModifyShips (PMENU_STATE pMS)
&& StarShipPtr->ShipInfo.crew_level == 0) && StarShipPtr->ShipInfo.crew_level == 0)
{ {
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
ShowCombatShip ((COUNT)pMS->CurState, StarShipPtr); ShowCombatShip ((COUNT)pMS->CurState, StarShipPtr);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
UnlockStarShip (&GLOBAL (built_ship_q), hStarShip); UnlockStarShip (&GLOBAL (built_ship_q), hStarShip);
RemoveQueue (&GLOBAL (built_ship_q), hStarShip); RemoveQueue (&GLOBAL (built_ship_q), hStarShip);
FreeStarShip (&GLOBAL (built_ship_q), hStarShip); FreeStarShip (&GLOBAL (built_ship_q), hStarShip);
@@ -998,13 +998,13 @@ DoModifyShips (PMENU_STATE pMS)
} }
else if (cancel) else if (cancel)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->InputFunc = DoShipyard; pMS->InputFunc = DoShipyard;
DrawMenuStateStrings (PM_CREW, pMS->CurState = SHIPYARD_CREW); DrawMenuStateStrings (PM_CREW, pMS->CurState = SHIPYARD_CREW);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (TRUE); return (TRUE);
} }
@@ -1031,7 +1031,7 @@ ChangeFlashRect:
} }
SetFlashRect (&pMS->flash_rect0, (FRAME)0); SetFlashRect (&pMS->flash_rect0, (FRAME)0);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
@@ -1044,7 +1044,7 @@ DrawBluePrint (PMENU_STATE pMS)
COUNT num_frames; COUNT num_frames;
STAMP s; STAMP s;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
pMS->ModuleFrame = CaptureDrawable ( pMS->ModuleFrame = CaptureDrawable (
@@ -1155,7 +1155,7 @@ DrawBluePrint (PMENU_STATE pMS)
DestroyDrawable (ReleaseDrawable (pMS->ModuleFrame)); DestroyDrawable (ReleaseDrawable (pMS->ModuleFrame));
pMS->ModuleFrame = 0; pMS->ModuleFrame = 0;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
void void
@@ -1220,16 +1220,16 @@ DoShipyard (PMENU_STATE pMS)
BatchGraphics (); BatchGraphics ();
DrawSISFrame (); DrawSISFrame ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawSISMessage (GAME_STRING (STARBASE_STRING_BASE + 3)); DrawSISMessage (GAME_STRING (STARBASE_STRING_BASE + 3));
DrawSISTitle (GAME_STRING (STARBASE_STRING_BASE)); DrawSISTitle (GAME_STRING (STARBASE_STRING_BASE));
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawBluePrint (pMS); DrawBluePrint (pMS);
pMS->ModuleFrame = s.frame; pMS->ModuleFrame = s.frame;
DrawMenuStateStrings (PM_CREW, pMS->CurState = SHIPYARD_CREW); DrawMenuStateStrings (PM_CREW, pMS->CurState = SHIPYARD_CREW);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetContext (SpaceContext); SetContext (SpaceContext);
s.origin.x = s.origin.y = 0; s.origin.x = s.origin.y = 0;
#ifdef USE_3DO_HANGAR #ifdef USE_3DO_HANGAR
@@ -1261,12 +1261,12 @@ DoShipyard (PMENU_STATE pMS)
PlayMusic (pMS->hMusic, TRUE, 1); PlayMusic (pMS->hMusic, TRUE, 1);
UnbatchGraphics (); UnbatchGraphics ();
BeginHangarAnim (pMS); BeginHangarAnim (pMS);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
ShowCombatShip ((COUNT)~0, (SHIP_FRAGMENTPTR)0); ShowCombatShip ((COUNT)~0, (SHIP_FRAGMENTPTR)0);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
pMS->Initialized = TRUE; pMS->Initialized = TRUE;
@@ -1275,13 +1275,13 @@ DoShipyard (PMENU_STATE pMS)
{ {
ExitShipyard: ExitShipyard:
EndHangarAnim (pMS); EndHangarAnim (pMS);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DestroyDrawable (ReleaseDrawable (pMS->ModuleFrame)); DestroyDrawable (ReleaseDrawable (pMS->ModuleFrame));
pMS->ModuleFrame = 0; pMS->ModuleFrame = 0;
pMS->CurFrame = 0; pMS->CurFrame = 0;
DestroyColorMap (ReleaseColorMap (pMS->CurString)); DestroyColorMap (ReleaseColorMap (pMS->CurString));
pMS->CurString = 0; pMS->CurString = 0;
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
return (FALSE); return (FALSE);
} }
@@ -1298,10 +1298,10 @@ ExitShipyard:
if (GameOptions () == 0) if (GameOptions () == 0)
goto ExitShipyard; goto ExitShipyard;
DrawMenuStateStrings (PM_CREW, pMS->CurState); DrawMenuStateStrings (PM_CREW, pMS->CurState);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect ((PRECT)~0L, (FRAME)0); SetFlashRect ((PRECT)~0L, (FRAME)0);
BeginHangarAnim (pMS); BeginHangarAnim (pMS);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
} }
else else
+10 -10
View File
@@ -73,9 +73,9 @@ ClearSISRect (BYTE ClearFlags)
if (ClearFlags & CLEAR_SIS_RADAR) if (ClearFlags & CLEAR_SIS_RADAR)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
DrawMenuStateStrings ((BYTE)~0, 1); DrawMenuStateStrings ((BYTE)~0, 1);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
#ifdef NEVER #ifdef NEVER
r.corner.x = RADAR_X - 1; r.corner.x = RADAR_X - 1;
r.corner.y = RADAR_Y - 1; r.corner.y = RADAR_Y - 1;
@@ -812,7 +812,7 @@ DeltaSISGauges (SIZE crew_delta, SIZE fuel_delta, int resunit_delta)
SUPPORT_SHIP_PTS SUPPORT_SHIP_PTS
}; };
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
for (hStarShip = GetHeadLink (&GLOBAL (built_ship_q)), for (hStarShip = GetHeadLink (&GLOBAL (built_ship_q)),
pship_pos = ship_pos; pship_pos = ship_pos;
hStarShip; hStarShip = hNextShip, ++pship_pos) hStarShip; hStarShip = hNextShip, ++pship_pos)
@@ -828,16 +828,16 @@ DeltaSISGauges (SIZE crew_delta, SIZE fuel_delta, int resunit_delta)
s.origin.x = pship_pos->x; s.origin.x = pship_pos->x;
s.origin.y = pship_pos->y; s.origin.y = pship_pos->y;
s.frame = StarShipPtr->ShipInfo.icons; s.frame = StarShipPtr->ShipInfo.icons;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStamp (&s); DrawStamp (&s);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
UnlockStarShip ( UnlockStarShip (
&GLOBAL (built_ship_q), &GLOBAL (built_ship_q),
hStarShip hStarShip
); );
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
} }
@@ -1313,7 +1313,7 @@ int flash_rect_func(void *data)
&tmp_rect, strength, 4); &tmp_rect, strength, 4);
} }
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (ScreenContext); OldContext = SetContext (ScreenContext);
SetContextClipRect (&cached_rect); SetContextClipRect (&cached_rect);
// flash changed_can't be modified while GraphicSem is held // flash changed_can't be modified while GraphicSem is held
@@ -1321,7 +1321,7 @@ int flash_rect_func(void *data)
DrawStamp (pStamp); DrawStamp (pStamp);
SetContextClipRect (NULL_PTR); // this will flush whatever SetContextClipRect (NULL_PTR); // this will flush whatever
SetContext (OldContext); SetContext (OldContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
FlushGraphics (); FlushGraphics ();
SleepThreadUntil (TimeIn + WaitTime); SleepThreadUntil (TimeIn + WaitTime);
@@ -1391,9 +1391,9 @@ SetFlashRect (PRECT pRect, FRAME f)
flash_rect1.extent.width = 0; flash_rect1.extent.width = 0;
if (flash_task) if (flash_task)
{ {
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
ConcludeTask (flash_task); ConcludeTask (flash_task);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
} }
} }
else else
+8 -8
View File
@@ -256,12 +256,12 @@ s.origin.x = SAFE_X, s.origin.y = SAFE_Y + 4;
{ {
//CONTEXT OldContext; //CONTEXT OldContext;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawStamp (&s); DrawStamp (&s);
s.frame = IncFrameIndex (s.frame); s.frame = IncFrameIndex (s.frame);
if (s.frame == pMenuState->CurFrame) if (s.frame == pMenuState->CurFrame)
s.frame = IncFrameIndex (s.frame); s.frame = IncFrameIndex (s.frame);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
SleepThreadUntil (TimeIn + (ONE_SECOND / 20)); SleepThreadUntil (TimeIn + (ONE_SECOND / 20));
TimeIn = GetTimeCounter (); TimeIn = GetTimeCounter ();
@@ -287,7 +287,7 @@ DoStarBase (PMENU_STATE pMS)
LastActivity &= ~CHECK_LOAD; LastActivity &= ~CHECK_LOAD;
pMS->InputFunc = DoStarBase; pMS->InputFunc = DoStarBase;
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
if (pMS->hMusic) if (pMS->hMusic)
@@ -306,7 +306,7 @@ DoStarBase (PMENU_STATE pMS)
pMS->Initialized = TRUE; pMS->Initialized = TRUE;
SetContext (ScreenContext); SetContext (ScreenContext);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
s.origin.x = s.origin.y = 0; s.origin.x = s.origin.y = 0;
s.origin.x = SAFE_X, s.origin.y = SAFE_Y + 4; s.origin.x = SAFE_X, s.origin.y = SAFE_Y + 4;
@@ -314,7 +314,7 @@ s.origin.x = SAFE_X, s.origin.y = SAFE_Y + 4;
pMS->CurFrame = s.frame; pMS->CurFrame = s.frame;
pMS->hMusic = LoadMusicInstance (STARBASE_MUSIC); pMS->hMusic = LoadMusicInstance (STARBASE_MUSIC);
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetTransitionSource (NULL); SetTransitionSource (NULL);
BatchGraphics (); BatchGraphics ();
SetContextBackGroundColor (BLACK_COLOR); SetContextBackGroundColor (BLACK_COLOR);
@@ -334,7 +334,7 @@ s.origin.x = SAFE_X, s.origin.y = SAFE_Y + 4;
UnbatchGraphics (); UnbatchGraphics ();
pMS->flash_task = AssignTask (rotate_starbase, 4096, pMS->flash_task = AssignTask (rotate_starbase, 4096,
"rotate starbase"); "rotate starbase");
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
} }
else if (CurrentMenuState.select else if (CurrentMenuState.select
|| GET_GAME_STATE (MOONBASE_ON_SHIP) || GET_GAME_STATE (MOONBASE_ON_SHIP)
@@ -410,9 +410,9 @@ ExitStarBase:
if (NewState != pMS->CurState) if (NewState != pMS->CurState)
{ {
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
DrawBaseStateStrings (pMS->CurState, NewState); DrawBaseStateStrings (pMS->CurState, NewState);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
pMS->CurState = NewState; pMS->CurState = NewState;
} }
} }
+4 -4
View File
@@ -59,9 +59,9 @@ int arilou_gate_task(void* data)
counter = 0; counter = 0;
} }
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SET_GAME_STATE (ARILOU_SPACE_COUNTER, counter); SET_GAME_STATE (ARILOU_SPACE_COUNTER, counter);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
UnlockCrossThreadMutex (GLOBAL (GameClock.clock_lock)); UnlockCrossThreadMutex (GLOBAL (GameClock.clock_lock));
SleepThreadUntil (TimeIn + BATTLE_FRAME_RATE); SleepThreadUntil (TimeIn + BATTLE_FRAME_RATE);
@@ -980,9 +980,9 @@ sc = _simple_count;
(int)_simple_count - (int)sc); (int)_simple_count - (int)sc);
#endif //TESTING #endif //TESTING
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
SetFlashRect (NULL_PTR, (FRAME)0); SetFlashRect (NULL_PTR, (FRAME)0);
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
LastActivity = GLOBAL (CurrentActivity); LastActivity = GLOBAL (CurrentActivity);
+1 -1
View File
@@ -163,7 +163,7 @@ extern BOOLEAN PagingEnabled;
extern FRAME ActivityFrame; extern FRAME ActivityFrame;
extern SOUND MenuSounds, GameSounds; extern SOUND MenuSounds, GameSounds;
extern QUEUE race_q[NUM_PLAYERS]; extern QUEUE race_q[NUM_PLAYERS];
extern CrossThreadMutex GraphicsLock; extern Mutex GraphicsLock;
extern CondVar RenderingCond; extern CondVar RenderingCond;
extern STRING GameStrings; extern STRING GameStrings;
+4 -4
View File
@@ -159,7 +159,7 @@ PauseGame (void)
if (CommData.ConversationPhrases && PlayingTrack ()) if (CommData.ConversationPhrases && PlayingTrack ())
PauseTrack (); PauseTrack ();
LockCrossThreadMutex (GraphicsLock); LockMutex (GraphicsLock);
OldContext = SetContext (ScreenContext); OldContext = SetContext (ScreenContext);
OldHot = SetFrameHot (Screen, MAKE_HOT_SPOT (0, 0)); OldHot = SetFrameHot (Screen, MAKE_HOT_SPOT (0, 0));
@@ -174,9 +174,9 @@ PauseGame (void)
// Releasing the lock lets the rotate_planet_task // Releasing the lock lets the rotate_planet_task
// draw a frame. PauseRotate can still allow one more frame // draw a frame. PauseRotate can still allow one more frame
// to be drawn, so it is safer to just not release the lock // to be drawn, so it is safer to just not release the lock
//UnlockCrossThreadMutex (GraphicsLock); //UnlockMutex (GraphicsLock);
FlushGraphics (); FlushGraphics ();
//LockCrossThreadMutex (GraphicsLock); //LockMutex (GraphicsLock);
while (ImmediateInputState.pause) while (ImmediateInputState.pause)
TaskSwitch (); TaskSwitch ();
@@ -208,7 +208,7 @@ PauseGame (void)
do_subtitles ((void *)~0); do_subtitles ((void *)~0);
} }
UnlockCrossThreadMutex (GraphicsLock); UnlockMutex (GraphicsLock);
TaskSwitch (); TaskSwitch ();
GLOBAL (CurrentActivity) &= ~CHECK_PAUSE; GLOBAL (CurrentActivity) &= ~CHECK_PAUSE;
+1 -1
View File
@@ -348,7 +348,7 @@ main (int argc, char *argv[])
InitTimeSystem (); InitTimeSystem ();
InitTaskSystem (); InitTaskSystem ();
GraphicsLock = CreateCrossThreadMutex ("Graphics"); GraphicsLock = CreateMutex (/*"Graphics"*/);
RenderingCond = CreateCondVar (); RenderingCond = CreateCondVar ();
TFB_InitGraphics (gfxdriver, gfxflags, width, height, bpp); TFB_InitGraphics (gfxdriver, gfxflags, width, height, bpp);