equal
deleted
inserted
replaced
153 procedure MainLoop; |
153 procedure MainLoop; |
154 var event: TSDL_Event; |
154 var event: TSDL_Event; |
155 PrevTime, CurrTime: LongWord; |
155 PrevTime, CurrTime: LongWord; |
156 isTerminated: boolean; |
156 isTerminated: boolean; |
157 previousGameState: TGameState; |
157 previousGameState: TGameState; |
|
158 wheelEvent: boolean; |
158 begin |
159 begin |
159 isTerminated:= false; |
160 isTerminated:= false; |
160 PrevTime:= SDL_GetTicks; |
161 PrevTime:= SDL_GetTicks; |
161 while isTerminated = false do |
162 while isTerminated = false do |
162 begin |
163 begin |
|
164 wheelEvent:= false; |
163 SDL_PumpEvents(); |
165 SDL_PumpEvents(); |
164 |
166 |
165 while SDL_PeepEvents(@event, 1, SDL_GETEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT) > 0 do |
167 while SDL_PeepEvents(@event, 1, SDL_GETEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT) > 0 do |
166 begin |
168 begin |
167 case event.type_ of |
169 case event.type_ of |
185 |
187 |
186 SDL_MOUSEBUTTONUP: |
188 SDL_MOUSEBUTTONUP: |
187 if (GameState >= gsGame) then ProcessMouse(event.button, false); |
189 if (GameState >= gsGame) then ProcessMouse(event.button, false); |
188 |
190 |
189 SDL_MOUSEWHEEL: |
191 SDL_MOUSEWHEEL: |
|
192 begin |
|
193 wheelEvent:= true; |
190 ProcessMouseWheel(event.wheel.x, event.wheel.y); |
194 ProcessMouseWheel(event.wheel.x, event.wheel.y); |
|
195 end; |
191 |
196 |
192 SDL_TEXTINPUT: uChat.TextInput(event.text); |
197 SDL_TEXTINPUT: uChat.TextInput(event.text); |
193 |
198 |
194 SDL_WINDOWEVENT: |
199 SDL_WINDOWEVENT: |
195 if event.window.event = SDL_WINDOWEVENT_SHOWN then |
200 if event.window.event = SDL_WINDOWEVENT_SHOWN then |
236 ControllerButtonEvent(event.jbutton.which, event.jbutton.button, false); |
241 ControllerButtonEvent(event.jbutton.which, event.jbutton.button, false); |
237 SDL_QUITEV: |
242 SDL_QUITEV: |
238 isTerminated:= true |
243 isTerminated:= true |
239 end; //end case event.type_ of |
244 end; //end case event.type_ of |
240 end; //end while SDL_PollEvent(@event) <> 0 do |
245 end; //end while SDL_PollEvent(@event) <> 0 do |
|
246 |
|
247 if (not wheelEvent) then |
|
248 ResetMouseWheel(); |
241 |
249 |
242 if (CursorMovementX <> 0) or (CursorMovementY <> 0) then |
250 if (CursorMovementX <> 0) or (CursorMovementY <> 0) then |
243 handlePositionUpdate(CursorMovementX * cameraKeyboardSpeed, CursorMovementY * cameraKeyboardSpeed); |
251 handlePositionUpdate(CursorMovementX * cameraKeyboardSpeed, CursorMovementY * cameraKeyboardSpeed); |
244 |
252 |
245 if (cScreenResizeDelay <> 0) and (cScreenResizeDelay < RealTicks) and |
253 if (cScreenResizeDelay <> 0) and (cScreenResizeDelay < RealTicks) and |