summaryrefslogtreecommitdiff
path: root/source/main.c
blob: ae0cf05660e94e91a72612d47b801ffceb9ce37e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include <string.h>
#include "../include/input.h"
#include "../include/toolbox.h"
#include "../include/memmap.h"
#include "../include/types.h"
#include "../include/memdef.h"

#include "../include/point.h"
#include "../include/velocity.h"
#include "../include/playerObject.h"
#include "../sprites/player.h"

OBJ_ATTR obj_buffer[128];
OBJ_AFFINE *obj_aff_buffer= (OBJ_AFFINE*)obj_buffer; // Object affine-buffer

void obj_test() {
	int x, y;
	x = 10; y = 10;
    u32 tid= 0, pb= 0;
    OBJ_ATTR *player = &obj_buffer[0];

    obj_set_attr(player,
        ATTR0_SQUARE,
        ATTR1_SIZE_16,
        ATTR2_PALBANK(pb) | tid
    );

    obj_set_pos(player, x, y);

    while(1) {
        vid_vsync();
        key_poll();

        oam_copy(oam_mem, obj_buffer, 1);
    }
}

int main() {
    memcpy(&tile_mem[4][0], playerTiles, playerTilesLen);
    memcpy(pal_obj_mem, playerPal, playerPalLen);

    oam_init(obj_buffer, 128);

    REG_DISPCNT= DCNT_OBJ | DCNT_OBJ_1D;

	playerObject player = createPlayerObject(&obj_buffer[0], 0, 0);


    while(1) {
		vid_vsync();
		key_poll();

		if ((key_is_down(KEY_A) || key_hit(KEY_A)) && !player.isJumping) {
			player.vel.dy -= 9 << FIX_SHIFT;
		}

		updatePlayer(&player, 140);
		oam_copy(oam_mem, obj_buffer, 1);
	}

    return 0;
}