int CTrigger::DoSetSpawnPoints (void) { int i, j; short nSegment; for (i = j = 0; i < MAX_PLAYERS; i++) { nSegment = m_info.segments [j]; TriggerSetOrient (&gameData.multiplayer.playerInit [i].position, nSegment, m_info.sides [j], 1, 0); gameData.multiplayer.playerInit [i].nSegment = nSegment; gameData.multiplayer.playerInit [i].nSegType = SEGMENTS [nSegment].m_nType; if (i == gameData.multiplayer.nLocalPlayer) MoveSpawnMarker (&gameData.multiplayer.playerInit [i].position, nSegment); j = (j + 1) % m_info.nLinks; } // delete any spawn markers that have been set before passing through this trigger to // avoid players getting stuck when respawning at that marker if (0 <= (gameData.marker.nHighlight = SpawnMarkerIndex (-1))) DeleteMarker (1); return 1; }
bool AlliesWhiteboard::Message(HWND WinProcWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { bool Rtn_Bool= false; if(DataShare->TAProgress != TAInGame) return Rtn_Bool; static bool Move = false; static bool Paint = false; switch(Msg) { case WM_KEYUP: if(wParam == VirtualKeyCode) { WBKeyDown = false; Rtn_Bool= true; break; } if(InputShown) { if(wParam == 13 || wParam == 27) InputShown = false; Rtn_Bool= true; break; } break; case WM_LBUTTONDOWN: { if(WBKeyDown) { CurrentElement = GetTextElementAt(*MapX+LOWORD(lParam)-128, *MapY+HIWORD(lParam)-32, 5); if(Move) { Rtn_Bool= true; break; } else if(CurrentElement) { Move = true; Rtn_Bool= true; break; } Paint = true; LastMouseX = LOWORD(lParam); LastMouseY = HIWORD(lParam); MarkerX = *MapX; MarkerY = *MapY; Rtn_Bool= true; break; } } case WM_LBUTTONUP: Move = false; Paint = false; break; case WM_LBUTTONDBLCLK: IDDrawSurface::OutptTxt ( "WM_LBUTTONDBLCLK and Key Down?"); if(WBKeyDown) { IDDrawSurface::OutptTxt ( "Get Mark Text"); CurrentElement = GetTextElementAt(*MapX+LOWORD(lParam)-128, *MapY+HIWORD(lParam)-32, 5); if(CurrentElement) lstrcpyA(Text, ((GraphicText*)CurrentElement)->text); InputShown = true; MarkerX = *MapX; MarkerY = *MapY; LastMouseX = LOWORD(lParam); LastMouseY = HIWORD(lParam); Rtn_Bool= true; break; } break; case WM_RBUTTONDBLCLK: if(WBKeyDown) { DeleteMarker(*MapX+LOWORD(lParam)-128, *MapY+HIWORD(lParam)-32); Rtn_Bool= true; break; } break; case WM_MBUTTONDOWN: if(WBKeyDown) { if(GetTextElementAt(*MapX+LOWORD(lParam)-128, *MapY+HIWORD(lParam)-32, 5)==0) { ElementHandler.AddElement(new GraphicText(*MapX + (LOWORD(lParam)-128), *MapY + (HIWORD(lParam)-32), "", *PlayerColor)); PacketHandler.push_back(new GraphicText(*MapX + (LOWORD(lParam)-128), *MapY + (HIWORD(lParam)-32), "", *PlayerColor)); } } break; case WM_CHAR: if(true==InputShown) { TextInputChar((TCHAR)wParam); Rtn_Bool= true; break; } break; case WM_RBUTTONDOWN: if(WBKeyDown) { Rtn_Bool= true; break; } break; case WM_RBUTTONUP: if(WBKeyDown) { Rtn_Bool= true; break; } break; case WM_KEYDOWN: if(true==InputShown) { TextInputKeyDown(wParam); Rtn_Bool= true; break; } TAdynmemStruct * Ptr; Ptr= *(TAdynmemStruct* *)0x00511de8; if(wParam == VirtualKeyCode) { if ((0==(WATCH& (Ptr->Players[LocalShare->OrgLocalPlayerID].PlayerInfo->PropertyMask)))) {//not work, when watching WBKeyDown = true; } if((GetAsyncKeyState(17)&0x8000)>0) //ctrl ScrollToCenter(LastMarkerX, LastMarkerY); Rtn_Bool= true; break; } break; case WM_MOUSEMOVE: if(WBKeyDown) { if(Paint) { MouseMove(LastMouseX-128, LOWORD(lParam)-128, LastMouseY-32, HIWORD(lParam)-32); LastMouseX = LOWORD(lParam); LastMouseY = HIWORD(lParam); MarkerX = *MapX; MarkerY = *MapY; } else if((wParam&MK_RBUTTON)>0) { EreaseArea(LOWORD(lParam)-128, HIWORD(lParam)-32); } if(Move) { if(CurrentElement) { PacketHandler.push_back(new GraphicMoveText(CurrentElement->x1, CurrentElement->y1, *MapX+LOWORD(lParam)-128, *MapY+HIWORD(lParam)-32, *PlayerColor)); CurrentElement = ElementHandler.MoveTextElement(CurrentElement, *MapX+LOWORD(lParam)-128, *MapY+HIWORD(lParam)-32); } } } break; } return Rtn_Bool; }