@@ -11,83 +11,83 @@ DefaultCamera::DefaultCamera()
1111{
1212 _dwTimeX = _dwTimeY = GetTickCount ();
1313}
14-
15- void DefaultCamera::HandleMovement (float worldWidth, float worldHeight,
16- float screenWidth, float screenHeight)
17- {
18- static char lastIn = 0 , LastOut = 0 ;
19- static float levels[] = { 0 .0625f , 0 .125f , 0 .25f , 0 .5f , 1 .0f , 1 .5f , 2 .0f };
20- static int level = 4 ;
21-
22- if ( !lastIn && g_env.envInputs .keys [ DIK_PGUP] )
23- level = __min (level+1 , sizeof (levels) / sizeof (float ) - 1 );
24- lastIn = g_env.envInputs .keys [ DIK_PGUP] ;
25-
26- if ( !LastOut && g_env.envInputs .keys [ DIK_PGDN] )
27- level = __max (level-1 , 0 );
28- LastOut = g_env.envInputs .keys [ DIK_PGDN] ;
29-
30- _zoom = levels[level];
31-
32- bool bMove = false ;
33- DWORD dwCurTime = GetTickCount ();
34- DWORD dt = DWORD (_dt);
35-
36- if ( 0 == g_env.envInputs .mouse_x || g_env.envInputs .keys [ DIK_LEFTARROW] )
37- {
38- bMove = true ;
39- while ( dwCurTime - _dwTimeX > dt )
40- {
41- _pos.x -= CELL_SIZE;
42- _dwTimeX += dt;
43- }
44- }
45- else
46- if ( screenWidth - 1 == g_env.envInputs .mouse_x || g_env.envInputs .keys [ DIK_RIGHTARROW] )
47- {
48- bMove = true ;
49- while ( dwCurTime - _dwTimeX > dt )
50- {
51- _pos.x += CELL_SIZE;
52- _dwTimeX += dt;
53- }
54- }
55- else
56- _dwTimeX = GetTickCount ();
57- // ---------------------------------------
58- if ( 0 == g_env.envInputs .mouse_y || g_env.envInputs .keys [ DIK_UPARROW] )
59- {
60- bMove = true ;
61- while ( dwCurTime - _dwTimeY > dt )
62- {
63- _pos.y -= CELL_SIZE;
64- _dwTimeY += dt;
65- }
66- }
67- else
68- if ( screenHeight - 1 == g_env.envInputs .mouse_y || g_env.envInputs .keys [ DIK_DOWNARROW] )
69- {
70- bMove = true ;
71- while ( dwCurTime - _dwTimeY > dt )
72- {
73- _pos.y += CELL_SIZE;
74- _dwTimeY += dt;
75- }
76- }
77- else
78- _dwTimeY = GetTickCount ();
79- // ---------------------------------------
80- if ( bMove )
81- _dt = __max (10 .0f , 1 .0f / (1 .0f / _dt + 0 .001f ));
82- else
83- _dt = 50 .0f ;
84- // ------------------------------------------------------
85- int dx = __max (0 , (int ) (screenWidth / _zoom - worldWidth) / 2 );
86- int dy = __max (0 , (int ) (screenHeight / _zoom - worldHeight) / 2 );
87- _pos.x = (float ) __max (int (_pos.x ), dx);
88- _pos.x = (float ) __min (int (_pos.x ), int (worldWidth - screenWidth / _zoom) + dx);
89- _pos.y = (float ) __max (int (_pos.y ), dy);
90- _pos.y = (float ) __min (int (_pos.y ), int (worldHeight - screenHeight / _zoom) + dy);
91- }
14+
15+ void DefaultCamera::HandleMovement (float worldWidth, float worldHeight,
16+ float screenWidth, float screenHeight)
17+ {
18+ static char lastIn = 0 , LastOut = 0 ;
19+ static float levels[] = { 0 .0625f , 0 .125f , 0 .25f , 0 .5f , 1 .0f , 1 .5f , 2 .0f };
20+ static int level = 4 ;
21+
22+ if ( !lastIn && g_env.envInputs .IsKeyPressed ( DIK_PGUP) )
23+ level = __min (level+1 , sizeof (levels) / sizeof (float ) - 1 );
24+ lastIn = g_env.envInputs .IsKeyPressed ( DIK_PGUP) ;
25+
26+ if ( !LastOut && g_env.envInputs .IsKeyPressed ( DIK_PGDN) )
27+ level = __max (level-1 , 0 );
28+ LastOut = g_env.envInputs .IsKeyPressed ( DIK_PGDN) ;
29+
30+ _zoom = levels[level];
31+
32+ bool bMove = false ;
33+ DWORD dwCurTime = GetTickCount ();
34+ DWORD dt = DWORD (_dt);
35+
36+ if ( 0 == g_env.envInputs .mouse_x || g_env.envInputs .IsKeyPressed ( DIK_LEFTARROW) )
37+ {
38+ bMove = true ;
39+ while ( dwCurTime - _dwTimeX > dt )
40+ {
41+ _pos.x -= CELL_SIZE;
42+ _dwTimeX += dt;
43+ }
44+ }
45+ else
46+ if ( screenWidth - 1 == g_env.envInputs .mouse_x || g_env.envInputs .IsKeyPressed ( DIK_RIGHTARROW) )
47+ {
48+ bMove = true ;
49+ while ( dwCurTime - _dwTimeX > dt )
50+ {
51+ _pos.x += CELL_SIZE;
52+ _dwTimeX += dt;
53+ }
54+ }
55+ else
56+ _dwTimeX = GetTickCount ();
57+ // ---------------------------------------
58+ if ( 0 == g_env.envInputs .mouse_y || g_env.envInputs .IsKeyPressed ( DIK_UPARROW) )
59+ {
60+ bMove = true ;
61+ while ( dwCurTime - _dwTimeY > dt )
62+ {
63+ _pos.y -= CELL_SIZE;
64+ _dwTimeY += dt;
65+ }
66+ }
67+ else
68+ if ( screenHeight - 1 == g_env.envInputs .mouse_y || g_env.envInputs .IsKeyPressed ( DIK_DOWNARROW) )
69+ {
70+ bMove = true ;
71+ while ( dwCurTime - _dwTimeY > dt )
72+ {
73+ _pos.y += CELL_SIZE;
74+ _dwTimeY += dt;
75+ }
76+ }
77+ else
78+ _dwTimeY = GetTickCount ();
79+ // ---------------------------------------
80+ if ( bMove )
81+ _dt = __max (10 .0f , 1 .0f / (1 .0f / _dt + 0 .001f ));
82+ else
83+ _dt = 50 .0f ;
84+ // ------------------------------------------------------
85+ int dx = __max (0 , (int ) (screenWidth / _zoom - worldWidth) / 2 );
86+ int dy = __max (0 , (int ) (screenHeight / _zoom - worldHeight) / 2 );
87+ _pos.x = (float ) __max (int (_pos.x ), dx);
88+ _pos.x = (float ) __min (int (_pos.x ), int (worldWidth - screenWidth / _zoom) + dx);
89+ _pos.y = (float ) __max (int (_pos.y ), dy);
90+ _pos.y = (float ) __min (int (_pos.y ), int (worldHeight - screenHeight / _zoom) + dy);
91+ }
9292
9393// end of file
0 commit comments