OSDN Git Service

tag_type構造体に関する修正
authorhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Fri, 16 Nov 2012 16:12:00 +0000 (16:12 +0000)
committerhabu <habu@0568b783-4c39-0410-ac80-bf13821ea2a2>
Fri, 16 Nov 2012 16:12:00 +0000 (16:12 +0000)
 * pointerメンバに対する意味不明な(void*)へのキャストを修正
 * tag_type構造体のswap関数でわざわざメンバそれぞれを入れ替えていたので
   構造体をそのまま入れ替えるように修正

src/init2.c
src/types.h
src/util.c

index 9fdba2f..5520d51 100644 (file)
@@ -2013,7 +2013,7 @@ static errr init_alloc(void)
        for (i = 1; i < max_r_idx; i++)
        {
                elements[i].tag = r_info[i].level;
        for (i = 1; i < max_r_idx; i++)
        {
                elements[i].tag = r_info[i].level;
-               elements[i].pointer = (void*)i;
+               elements[i].index = i;
        }
 
        tag_sort(elements, max_r_idx);
        }
 
        tag_sort(elements, max_r_idx);
@@ -2030,7 +2030,7 @@ static errr init_alloc(void)
        for (i = 1; i < max_r_idx; i++)
        {
                /* Get the i'th race */
        for (i = 1; i < max_r_idx; i++)
        {
                /* Get the i'th race */
-               r_ptr = &r_info[(int)elements[i].pointer];
+               r_ptr = &r_info[elements[i].index];
 
                /* Count valid pairs */
                if (r_ptr->rarity)
 
                /* Count valid pairs */
                if (r_ptr->rarity)
@@ -2044,7 +2044,7 @@ static errr init_alloc(void)
                        p = (100 / r_ptr->rarity);
 
                        /* Load the entry */
                        p = (100 / r_ptr->rarity);
 
                        /* Load the entry */
-                       alloc_race_table[i].index = (int)elements[i].pointer;
+                       alloc_race_table[i].index = elements[i].index;
                        alloc_race_table[i].level = x;
                        alloc_race_table[i].prob1 = p;
                        alloc_race_table[i].prob2 = p;
                        alloc_race_table[i].level = x;
                        alloc_race_table[i].prob1 = p;
                        alloc_race_table[i].prob2 = p;
index 344150b..bb0972f 100644 (file)
@@ -1512,7 +1512,7 @@ typedef struct tag_type tag_type;
 struct tag_type
 {
        int     tag;
 struct tag_type
 {
        int     tag;
-       void    *pointer;
+       int     index;
 };
 
 typedef bool (*monster_hook_type)(int r_idx);
 };
 
 typedef bool (*monster_hook_type)(int r_idx);
index 0c7d46a..b626282 100644 (file)
@@ -4853,14 +4853,9 @@ static void swap(tag_type *a, tag_type *b)
 {
        tag_type temp;
 
 {
        tag_type temp;
 
-       temp.tag = a->tag;
-       temp.pointer = a->pointer;
-
-       a->tag = b->tag;
-       a->pointer = b->pointer;
-
-       b->tag = temp.tag;
-       b->pointer = temp.pointer;
+       temp = *a;
+       *a = *b;
+       *b = temp;
 }
 
 
 }