8 void init_player(struct player *p, struct level *lvl)
10 memset(p, 0, sizeof *p);
13 cell_to_pos(lvl, lvl->orgx, lvl->orgy, &p->x, &p->y);
14 p->cell = level_cell(lvl, lvl->orgx, lvl->orgy);
17 void player_input(struct player *p, uint16_t bnstate)
20 p->theta = (p->theta + view_dtheta) % X_2PI;
21 if(p->theta < 0) p->theta += X_2PI;
23 if(p->phi > X_HPI) p->phi = X_HPI;
24 if(p->phi < -X_HPI) p->phi = -X_HPI;
30 if(bnstate & KEY_UP) {
32 if(p->phi > X_HPI) p->phi = X_HPI;
34 if(bnstate & KEY_DOWN) {
36 if(p->phi < -X_HPI) p->phi = -X_HPI;
38 if(bnstate & KEY_LEFT) {
40 if(p->theta >= X_2PI) p->theta -= X_2PI;
42 if(bnstate & KEY_RIGHT) {
44 if(p->theta < 0) p->theta += X_2PI;