110 {$ENDIF} |
111 {$ENDIF} |
111 |
112 |
112 if flagMakeCapture then |
113 if flagMakeCapture then |
113 begin |
114 begin |
114 flagMakeCapture:= false; |
115 flagMakeCapture:= false; |
115 {$IFNDEF IPHONEOS} |
|
116 s:= 'hw_' + FormatDateTime('YYYY-MM-DD_HH-mm-ss', Now()) + inttostr(GameTicks); |
116 s:= 'hw_' + FormatDateTime('YYYY-MM-DD_HH-mm-ss', Now()) + inttostr(GameTicks); |
117 |
117 |
118 playSound(sndShutter); |
118 playSound(sndShutter); |
|
119 {$IFNDEF IPHONEOS} |
119 if not MakeScreenshot(s) then |
120 if not MakeScreenshot(s) then |
120 begin |
121 begin |
121 WriteLnToConsole('Screenshot failed.'); |
122 WriteLnToConsole('Screenshot failed.'); |
122 AddChatString(#5 + 'screen capture failed (lack of memory or write permissions)'); |
123 AddChatString(#5 + 'screen capture failed (lack of memory or write permissions)'); |
123 end |
124 end |
124 else |
125 else |
|
126 {$ENDIF} |
125 WriteLnToConsole('Screenshot saved: ' + s); |
127 WriteLnToConsole('Screenshot saved: ' + s); |
126 {$ENDIF} |
|
127 end; |
128 end; |
128 end; |
129 end; |
129 |
130 |
130 //////////////////// |
131 //////////////////// |
131 procedure OnDestroy; |
132 procedure OnDestroy; |
151 {$WARNINGS OFF} |
152 {$WARNINGS OFF} |
152 // disable "Some fields weren't initialized" warning |
153 // disable "Some fields weren't initialized" warning |
153 const event: TSDL_Event = (); |
154 const event: TSDL_Event = (); |
154 {$WARNINGS ON} |
155 {$WARNINGS ON} |
155 var PrevTime, CurrTime: Longword; |
156 var PrevTime, CurrTime: Longword; |
|
157 {$IFDEF SDL13} |
|
158 previousGameState: TGameState; |
|
159 {$ELSE} |
156 prevFocusState: boolean; |
160 prevFocusState: boolean; |
|
161 {$ENDIF} |
157 begin |
162 begin |
158 PrevTime:= SDL_GetTicks; |
163 PrevTime:= SDL_GetTicks; |
159 while isTerminated = false do |
164 while isTerminated = false do |
160 begin |
165 begin |
161 SDL_PumpEvents(); |
166 SDL_PumpEvents(); |
162 {$IFDEF SDL13} |
167 {$IFDEF SDL13} |
163 while SDL_PeepEvents(@event, 1, SDL_GETEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT) > 0 do |
168 while SDL_PeepEvents(@event, 1, SDL_GETEVENT, SDL_FIRSTEVENT, SDL_LASTEVENT) > 0 do |
164 {$ELSE} |
169 {$ELSE} |
165 while SDL_PeepEvents(@event, 1, SDL_GETEVENT, SDL_ALLEVENTS) > 0 do |
170 while SDL_PeepEvents(@event, 1, SDL_GETEVENT, SDL_ALLEVENTS) > 0 do |
166 {$ENDIF} |
171 {$ENDIF} |
167 begin |
172 begin |
168 case event.type_ of |
173 case event.type_ of |
169 SDL_KEYDOWN: if GameState = gsChat then |
174 SDL_KEYDOWN: if GameState = gsChat then |
170 {$IFDEF SDL13} |
175 {$IFDEF SDL13} |
171 // sdl on iphone supports only ashii keyboards and the unicode field is deprecated in sdl 1.3 |
176 // sdl on iphone supports only ashii keyboards and the unicode field is deprecated in sdl 1.3 |
173 SDL_WINDOWEVENT: |
178 SDL_WINDOWEVENT: |
174 if event.window.event = SDL_WINDOWEVENT_SHOWN then |
179 if event.window.event = SDL_WINDOWEVENT_SHOWN then |
175 begin |
180 begin |
176 cHasFocus:= true; |
181 cHasFocus:= true; |
177 onFocusStateChanged() |
182 onFocusStateChanged() |
|
183 end |
|
184 else if event.window.event = SDL_WINDOWEVENT_MINIMIZED then |
|
185 begin |
|
186 previousGameState:= GameState; |
|
187 GameState:= gsSuspend; |
|
188 end |
|
189 else if event.window.event = SDL_WINDOWEVENT_RESTORED then |
|
190 begin |
|
191 GameState:= previousGameState; |
|
192 end |
|
193 else if event.window.event = SDL_WINDOWEVENT_RESIZED then |
|
194 begin |
|
195 cNewScreenWidth:= max(2 * (event.window.data1 div 2), cMinScreenWidth); |
|
196 cNewScreenHeight:= max(2 * (event.window.data2 div 2), cMinScreenHeight); |
|
197 cScreenResizeDelay:= RealTicks+500; |
178 end; |
198 end; |
179 SDL_FINGERMOTION: onTouchMotion(event.tfinger.x, event.tfinger.y,event.tfinger.dx, event.tfinger.dy, event.tfinger.fingerId); |
199 SDL_FINGERMOTION: onTouchMotion(event.tfinger.x, event.tfinger.y,event.tfinger.dx, event.tfinger.dy, event.tfinger.fingerId); |
180 SDL_FINGERDOWN: onTouchDown(event.tfinger.x, event.tfinger.y, event.tfinger.fingerId); |
200 SDL_FINGERDOWN: onTouchDown(event.tfinger.x, event.tfinger.y, event.tfinger.fingerId); |
181 SDL_FINGERUP: onTouchUp(event.tfinger.x, event.tfinger.y, event.tfinger.fingerId); |
201 SDL_FINGERUP: onTouchUp(event.tfinger.x, event.tfinger.y, event.tfinger.fingerId); |
182 {$ELSE} |
202 {$ELSE} |