Skip to content

Commit bc57369

Browse files
committed
Move player variables to world.{c,h}
1 parent d6c6ad1 commit bc57369

File tree

4 files changed

+50
-58
lines changed

4 files changed

+50
-58
lines changed

map.c

-43
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ rgba_t special_colors[COLOR_MAX_SPECIAL] = {
2828

2929
/* map graphics code */
3030

31-
double player_dx = 0.0, player_dy = 0.0, player_dz = 0.0;
32-
coord3_t player_pos = { .x = 0, .y = 0, .z = 0 };
33-
int player_yaw = 0;
34-
jshort player_health = 0;
35-
3631
GHashTable *regions = 0;
3732
TTF_Font *map_font = 0;
3833
SDL_PixelFormat *screen_fmt = 0;
@@ -199,44 +194,6 @@ void map_update_all(void)
199194
G_UNLOCK(map_mutex);
200195
}
201196

202-
void map_update_player_pos(double x, double y, double z)
203-
{
204-
coord3_t new_pos = COORD3(floor(x), floor(y), floor(z));
205-
206-
if (COORD3_EQUAL(player_pos, new_pos))
207-
return;
208-
209-
player_dx = x;
210-
player_dy = y;
211-
player_dz = z;
212-
213-
player_pos = new_pos;
214-
215-
map_mode->update_player_pos(map_mode->data);
216-
217-
map_repaint();
218-
}
219-
220-
void map_update_player_dir(double yaw)
221-
{
222-
int new_yaw = 0;
223-
224-
yaw = fmod(yaw, 360.0);
225-
226-
if (yaw < 0.0) yaw += 360.0;
227-
if (yaw > 360-22.5) yaw -= 360;
228-
229-
while (new_yaw < 7 && yaw > 22.5)
230-
new_yaw++, yaw -= 45.0;
231-
232-
if (new_yaw == player_yaw)
233-
return;
234-
235-
player_yaw = new_yaw;
236-
237-
map_repaint();
238-
}
239-
240197
void map_set_mode(struct map_mode *mode)
241198
{
242199
map_mode = mode;

map.h

-7
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,6 @@ extern SDL_PixelFormat *screen_fmt;
6767
extern TTF_Font *map_font;
6868
extern int map_w, map_h;
6969
extern bool map_focused;
70-
extern double player_dx, player_dy, player_dz;
71-
extern coord3_t player_pos;
72-
extern int player_yaw;
73-
extern jshort player_health;
7470

7571
extern int map_scale;
7672

@@ -87,9 +83,6 @@ struct map_region *map_get_region(coord_t cc, bool gen);
8783
void map_update(coord_t c1, coord_t c2);
8884
void map_update_all(void);
8985

90-
void map_update_player_pos(double x, double y, double z);
91-
void map_update_player_dir(double yaw);
92-
9386
void map_set_mode(struct map_mode *mode);
9487
void map_mode_changed(void);
9588

world.c

+47-8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#include <math.h>
12
#include <errno.h>
23
#include <fcntl.h>
34
#include <limits.h>
@@ -31,7 +32,12 @@ static jint entity_vehicle = -1;
3132

3233
int world_time = 0;
3334
static jlong world_seed = 0;
34-
static int spawn_known = 0;
35+
36+
coord3_t player_pos = { .x = 0, .y = 0, .z = 0 };
37+
int player_yaw = 0;
38+
jshort player_health = 0;
39+
40+
static bool spawn_known = false;
3541
static jint spawn_x = 0, spawn_y = 0, spawn_z = 0;
3642

3743
static char *world_path = 0;
@@ -413,6 +419,39 @@ static void handle_set_block(jint x, jint y, jint z, jint type)
413419
map_update(cc, cc);
414420
}
415421

422+
static void update_player_pos(double x, double y, double z)
423+
{
424+
coord3_t new_pos = COORD3(floor(x), floor(y), floor(z));
425+
426+
if (COORD3_EQUAL(player_pos, new_pos))
427+
return;
428+
429+
player_pos = new_pos;
430+
431+
map_mode->update_player_pos(map_mode->data);
432+
map_repaint();
433+
}
434+
435+
static void update_player_dir(double yaw)
436+
{
437+
int new_yaw = 0;
438+
439+
yaw = fmod(yaw, 360.0);
440+
441+
if (yaw < 0.0) yaw += 360.0;
442+
if (yaw > 360-22.5) yaw -= 360;
443+
444+
while (new_yaw < 7 && yaw > 22.5)
445+
new_yaw++, yaw -= 45.0;
446+
447+
if (new_yaw == player_yaw)
448+
return;
449+
450+
player_yaw = new_yaw;
451+
452+
map_repaint();
453+
}
454+
416455
static void entity_add(jint id, enum entity_type type, jshort subtype,
417456
unsigned char *name, jint x, jint y, jint z)
418457
{
@@ -497,7 +536,7 @@ static void entity_move(jint id, jint x, jint y, jint z, int relative)
497536
e->pos = ep;
498537

499538
if (id == entity_vehicle)
500-
map_update_player_pos(ep.x, e->ay/32, ep.z);
539+
update_player_pos(ep.x, e->ay/32, ep.z);
501540
else
502541
map_repaint();
503542
}
@@ -548,23 +587,23 @@ static gpointer world_thread(gpointer data)
548587
break;
549588

550589
case PACKET_PLAYER_LOOK:
551-
map_update_player_dir(packet_double(packet, 0));
590+
update_player_dir(packet_double(packet, 0));
552591
break;
553592

554593
case PACKET_PLAYER_POSITION_AND_LOOK:
555-
map_update_player_dir(packet_double(packet, 4));
594+
update_player_dir(packet_double(packet, 4));
556595

557596
/* fall-thru to PACKET_PLAYER_POSITION */
558597

559598
case PACKET_PLAYER_POSITION:
560599
if (entity_vehicle < 0)
561-
map_update_player_pos(packet_double(packet, 0),
562-
packet_double(packet, 1),
563-
packet_double(packet, 3));
600+
update_player_pos(packet_double(packet, 0),
601+
packet_double(packet, 1),
602+
packet_double(packet, 3));
564603

565604
if (from == PACKET_FROM_SERVER && !spawn_known)
566605
{
567-
spawn_known = 1;
606+
spawn_known = true;
568607
spawn_x = packet_double(packet, 0);
569608
spawn_y = packet_double(packet, 1);
570609
spawn_z = packet_double(packet, 3);

world.h

+3
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ struct entity
7373
};
7474

7575
extern int world_time;
76+
extern coord3_t player_pos;
77+
extern int player_yaw;
78+
extern jshort player_health;
7679

7780
void world_start(const char *path);
7881

0 commit comments

Comments
 (0)