Browse Source

fixed some wild pokemon

Philipp Auer 7 years ago
parent
commit
a28bafe0bd

+ 1822
- 954
data/overworld/wild_pokemon_data.S
File diff suppressed because it is too large
View File


+ 2
- 0
src/include/types.h View File

14
 typedef     float                   f32;
14
 typedef     float                   f32;
15
 typedef     double                  f64;
15
 typedef     double                  f64;
16
 
16
 
17
+#define NULL 0x00000000
18
+
17
 #include <stddef.h>
19
 #include <stddef.h>
18
 #include <stdbool.h>
20
 #include <stdbool.h>
19
 
21
 

+ 3
- 11
src/player_interaction/on_step.S View File

36
 	bl check_block_role
36
 	bl check_block_role
37
 	lsl r0, #0x18
37
 	lsl r0, #0x18
38
 	lsr r0, #0x18
38
 	lsr r0, #0x18
39
-	ldr r1, behavior_walk_table
39
+	ldr r1, =behavior_walk_table
40
 	lsl r0, #2
40
 	lsl r0, #2
41
 	add r0, r1
41
 	add r0, r1
42
 	ldr r0, [r0]
42
 	ldr r0, [r0]
43
 	mov r2, #0
43
 	mov r2, #0
44
-	sub r2, #1
45
 	cmp r0, r2
44
 	cmp r0, r2
46
 	beq check_walking_script
45
 	beq check_walking_script
47
 	
46
 	
56
 	cmp r0, #0
55
 	cmp r0, #0
57
 	beq return_false
56
 	beq return_false
58
 	sub r0, #1
57
 	sub r0, #1
59
-	ldr r1, script_walk_table
58
+	ldr r1, =script_walk_table
60
 	lsl r0, #2
59
 	lsl r0, #2
61
 	add r0, r1
60
 	add r0, r1
62
 	ldr r0, [r0]
61
 	ldr r0, [r0]
101
 	
100
 	
102
 execute_script:
101
 execute_script:
103
 	ldr r3, =0x08069AE4|1
102
 	ldr r3, =0x08069AE4|1
104
-	bx r3
105
-
106
-.align 2
107
-behavior_walk_table:
108
-	.word 0x09700B20
109
-
110
-script_walk_table:
111
-	.word 0x09700F20
103
+	bx r3

+ 109
- 0
src/player_interaction/player_interaction.c View File

1
+/****************************************************************************
2
+ * Copyright (C) 2015-2017 by the SotS Team                                 *
3
+ *                                                                          *
4
+ * This file is part of Sovereign of the Skies.                             *
5
+ *                                                                          *
6
+ *   Sovereign of the Skies is free software: you can redistribute it       *
7
+ *   and/or modify it                                                       *
8
+ *   under the terms of the GNU Lesser General Public License as published  *
9
+ *   by the Free Software Foundation, either version 3 of the License, or   *
10
+ *   (at your option) any later version provided you include a copy of the  *
11
+ *   licence and this header.                                               *
12
+ *                                                                          *
13
+ *   Sovereign of the Skies is distributed in the hope that it will be      *
14
+ *   useful, but WITHOUT ANY WARRANTY; without even the implied warranty of *
15
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
16
+ *   GNU Lesser General Public License for more details.                    *
17
+ *                                                                          *
18
+ *   You should have received a copy of the GNU Lesser General Public       *
19
+ *   License along with Sovereign of the Skies.                             *
20
+ *   If not, see <http://www.gnu.org/licenses/>.                            *
21
+ ****************************************************************************/
22
+
23
+ /**
24
+ * @file player_interaction.c
25
+ * @author Sturmvogel
26
+ * @date 21 may 2017
27
+ * @brief define tables for walking and behavior scripts
28
+ */
29
+
30
+#include <types.h>
31
+
32
+void* script_walk_table[] =
33
+{
34
+    (void*)NULL
35
+};
36
+
37
+void* behavior_walk_table[] =
38
+{
39
+    (void*)NULL,
40
+    (void*)NULL,
41
+    (void*)NULL,
42
+    (void*)NULL,
43
+    (void*)NULL,
44
+    (void*)NULL,
45
+    (void*)NULL,
46
+    (void*)NULL,
47
+    (void*)NULL,
48
+    (void*)NULL,
49
+    (void*)NULL,
50
+    (void*)NULL,
51
+    (void*)NULL,
52
+    (void*)NULL,
53
+    (void*)NULL,
54
+    (void*)NULL,
55
+    (void*)NULL,
56
+    (void*)NULL,
57
+    (void*)NULL,
58
+    (void*)NULL,
59
+    (void*)NULL,
60
+    (void*)NULL,
61
+    (void*)NULL,
62
+    (void*)NULL,
63
+    (void*)NULL,
64
+    (void*)NULL,
65
+    (void*)NULL,
66
+    (void*)NULL,
67
+    (void*)NULL,
68
+    (void*)NULL,
69
+    (void*)NULL,
70
+    (void*)NULL,
71
+    (void*)NULL,
72
+    (void*)NULL,
73
+    (void*)NULL,
74
+    (void*)NULL,
75
+    (void*)NULL,
76
+    (void*)NULL,
77
+    (void*)NULL,
78
+    (void*)NULL,
79
+    (void*)NULL,
80
+    (void*)NULL,
81
+    (void*)NULL,
82
+    (void*)NULL,
83
+    (void*)NULL,
84
+    (void*)NULL,
85
+    (void*)NULL,
86
+    (void*)NULL,
87
+    (void*)NULL,
88
+    (void*)NULL,
89
+    (void*)NULL,
90
+    (void*)NULL,
91
+    (void*)NULL,
92
+    (void*)NULL,
93
+    (void*)NULL,
94
+    (void*)NULL,
95
+    (void*)NULL,
96
+    (void*)NULL,
97
+    (void*)NULL,
98
+    (void*)NULL,
99
+    (void*)NULL,
100
+    (void*)0x0891B807,
101
+    (void*)0x0891B807
102
+};
103
+
104
+//TODO implement actual functtions
105
+
106
+void* pi_dummy(bool darg)
107
+{
108
+    return darg ? behavior_walk_table[0] : script_walk_table[0];
109
+}

+ 2
- 2
src/specials/check_tileset.c View File

37
     u16 x;
37
     u16 x;
38
     u16 y;
38
     u16 y;
39
     player_get_pos_to(&x, &y);
39
     player_get_pos_to(&x, &y);
40
-    dprintf("reading from %d %d\n", x,y);
40
+    dprintf("sp_check_tileset: reading from %d %d\n", x,y);
41
     u16 block_id = current_map_block_id_at(x,y);
41
     u16 block_id = current_map_block_id_at(x,y);
42
-    dprintf("block id: %d\n", block_id);
42
+    dprintf("sp_check_tileset: block id: %d\n", block_id);
43
     var_set(0x800D, current_map_block_id_at(x,y));
43
     var_set(0x800D, current_map_block_id_at(x,y));
44
 }
44
 }