Ticket #314: monster-notes-r810.diff

File monster-notes-r810.diff, 3.8 KB (added by GabeCunningham, 12 years ago)

Monster notes patch

  • cmd4.c

     
    42464246void do_cmd_note(void) 
    42474247{ 
    42484248        char tmp[80]; 
     4249        char cmd; 
    42494250 
    42504251        /* Default */ 
    42514252        my_strcpy(tmp, "", sizeof(tmp)); 
     
    42564257        /* Ignore empty notes */ 
    42574258        if (!tmp[0] || (tmp[0] == ' ')) return; 
    42584259 
    4259         /* Add the note to the message recall */ 
    4260         msg_format("Note: %s", tmp); 
     4260        /* Get a note type */ 
     4261        if (!get_com("Type of note? ('h'istory/'m'onster): ", &cmd)) return; 
    42614262 
    4262         /* Add a history entry */ 
    4263         history_add(tmp, HISTORY_USER_INPUT, 0); 
     4263        /* Analyze the note type */ 
     4264        switch (cmd) 
     4265        { 
     4266                case 'h': 
     4267                case 'H': 
     4268                { 
     4269                        /* Add the note to the message recall */ 
     4270                        msg_format("Note: %s", tmp); 
     4271 
     4272                        /* Add a history entry */ 
     4273                        history_add(tmp, HISTORY_USER_INPUT, 0); 
     4274                         
     4275                        return; 
     4276                } 
     4277                case 'm': 
     4278                case 'M': 
     4279                { 
     4280                        monster_lore *l_ptr = &l_list[p_ptr->monster_race_idx]; 
     4281                         
     4282                        /* Check for existing notes */ 
     4283                        if (l_ptr->notes) string_free(l_ptr->notes); 
     4284 
     4285                        /* Add new notes */ 
     4286                        l_ptr->notes = string_make(tmp); 
     4287 
     4288                        /* Mark monster recall for redrawing */                  
     4289                        p_ptr->redraw |= (PR_MONSTER); 
     4290                         
     4291                        return;  
     4292                } 
     4293        } 
    42644294} 
    42654295 
    42664296 
  • defines.h

     
    4545 */ 
    4646#define VERSION_MAJOR   3 
    4747#define VERSION_MINOR   0 
    48 #define VERSION_PATCH   13 
     48#define VERSION_PATCH   14 
    4949#define VERSION_EXTRA   0 
    5050 
    5151/* 
  • init2.c

     
    15261526{ 
    15271527        int i; 
    15281528 
    1529  
    15301529        /* Free the macros */ 
    15311530        macro_free(); 
    15321531 
     
    15621561        /* Free the quest list */ 
    15631562        FREE(q_list); 
    15641563 
     1564        /* Free monster notes */ 
     1565        for (i = 0; i < z_info->r_max; i++) 
     1566        { 
     1567                monster_lore *l_ptr = &l_list[i]; 
     1568                string_free(l_ptr->notes); 
     1569        } 
     1570 
    15651571        /* Free the lore, monster, and object lists */ 
    15661572        FREE(l_list); 
    15671573        FREE(mon_list); 
     
    16221628        string_free(ANGBAND_DIR_PREF); 
    16231629        string_free(ANGBAND_DIR_USER); 
    16241630        string_free(ANGBAND_DIR_XTRA); 
     1631         
    16251632} 
  • load.c

     
    688688{ 
    689689        int i; 
    690690        byte tmp8u; 
     691        char tmp[80]; 
    691692 
    692693        monster_race *r_ptr = &r_info[r_idx]; 
    693694        monster_lore *l_ptr = &l_list[r_idx]; 
     
    724725 
    725726        /* Read the "Racial" monster limit per level */ 
    726727        rd_byte(&r_ptr->max_num); 
     728         
     729        if (!(older_than(3, 0, 14))) 
     730        { 
     731                /* Read the monster notes */ 
     732                rd_string(tmp, sizeof(tmp)); 
    727733 
     734                /* Save the notes */ 
     735                if (tmp[0]) l_ptr->notes = string_make(tmp); 
     736        } 
     737 
    728738        /* Later (?) */ 
    729739        rd_byte(&tmp8u); 
    730740        rd_byte(&tmp8u); 
  • monster1.c

     
    11121112        if (lore.flags[0] & RF1_QUESTOR) 
    11131113                text_out("You feel an intense desire to kill this monster...  "); 
    11141114 
     1115        if (lore.notes) text_out("\n\n%s", lore.notes); 
     1116 
    11151117        /* All done */ 
    11161118        text_out("\n"); 
    11171119} 
  • save.c

     
    213213        /* Monster limit per level */ 
    214214        wr_byte(r_ptr->max_num); 
    215215 
     216        /* Write monster notes */ 
     217        if (l_ptr->notes) 
     218                wr_string(l_ptr->notes); 
     219        else 
     220                wr_string(""); 
     221 
    216222        /* Later (?) */ 
    217223        wr_byte(0); 
    218224        wr_byte(0); 
  • types.h

     
    420420        byte blows[MONSTER_BLOW_MAX]; /* Number of times each blow type was seen */ 
    421421 
    422422        u32b flags[RACE_FLAG_STRICT_UB];        /* Observed racial flags */ 
     423         
     424        char *notes;                    /* Player notes about this monster */ 
    423425}; 
    424426 
    425427