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
|
# Origin: https://github.com/naev/naev/commit/74b9a086a20f80f21ce2f3866b31318e651a6235
# Subject: Turn player_missions in an array of pointers
# Origin: https://github.com/naev/naev/commit/155a7fdaf07e1b5549e6314a433425b4187bb33f
# Subject: Don't use a pointer to a pointer
--- src/nlua_misn.c.orig 2015-02-16 17:49:03 UTC
+++ src/nlua_misn.c
@@ -283,13 +283,13 @@ int misn_runFunc( Mission *misn, const c
if (misn_delete) {
ret = 2;
mission_cleanup( cur_mission );
- for (i=0; i<MISSION_MAX; i++)
- if (cur_mission == &player_missions[i]) {
- memmove( &player_missions[i], &player_missions[i+1],
- sizeof(Mission) * (MISSION_MAX-i-1) );
- memset( &player_missions[MISSION_MAX-1], 0, sizeof(Mission) );
- break;
- }
+ for (i=0; i<MISSION_MAX; i++) {
+ if (cur_mission != player_missions[i])
+ continue;
+
+ mission_shift(i);
+ break;
+ }
}
return ret;
@@ -609,7 +609,7 @@ static int misn_accept( lua_State *L )
/* find last mission */
for (i=0; i<MISSION_MAX; i++)
- if (player_missions[i].data == NULL)
+ if (player_missions[i]->data == NULL)
break;
cur_mission = misn_getFromLua(L);
@@ -620,9 +620,9 @@ static int misn_accept( lua_State *L )
else if (i>=MISSION_MAX)
ret = 1;
else { /* copy it over */
- memcpy( &player_missions[i], cur_mission, sizeof(Mission) );
+ memcpy( player_missions[i], cur_mission, sizeof(Mission) );
memset( cur_mission, 0, sizeof(Mission) );
- cur_mission = &player_missions[i];
+ cur_mission = player_missions[i];
cur_mission->accepted = 1; /* Mark as accepted. */
/* Need to change pointer. */
|