Changeset 486

Show
Ignore:
Timestamp:
08/10/07 11:43:54 (1 year ago)
Author:
ajps
Message:

Add a few assertion 'guarantees' in case there's a crash bug in the map_info changes.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/cave.c

    r485 r486  
    610610         
    611611        feature_type *f_ptr = &f_info[g->f_idx]; 
    612          
     612 
    613613        /* Normal attr and char */ 
    614614        a = f_ptr->x_attr; 
     
    681681                                char dc; 
    682682                                 
    683                                 /* Desired attr & char*/ 
     683                                /* Desired attr & char */ 
    684684                                da = r_ptr->x_attr; 
    685685                                dc = r_ptr->x_char; 
     
    752752                { 
    753753                        switch(p_ptr->chp * 10 / p_ptr->mhp) 
     754                        { 
     755                                case 10: 
     756                                case  9:  
    754757                                { 
    755                                 case 10: 
    756                                 case  9:        a = TERM_WHITE  ;       break; 
     758                                        a = TERM_WHITE;  
     759                                        break; 
     760                                } 
    757761                                case  8: 
    758                                 case  7:        a = TERM_YELLOW ;       break; 
     762                                case  7: 
     763                                { 
     764                                        a = TERM_YELLOW; 
     765                                        break; 
     766                                } 
    759767                                case  6: 
    760                                 case  5:        a = TERM_ORANGE ;       break; 
     768                                case  5: 
     769                                { 
     770                                        a = TERM_ORANGE; 
     771                                        break; 
     772                                } 
    761773                                case  4: 
    762                                 case  3:        a = TERM_L_RED  ;       break; 
     774                                case  3: 
     775                                { 
     776                                        a = TERM_L_RED; 
     777                                        break; 
     778                                } 
    763779                                case  2: 
    764780                                case  1: 
    765                                 case  0:        a = TERM_RED    ;       break; 
    766                                 default:        a = TERM_WHITE  ;       break; 
     781                                case  0: 
     782                                { 
     783                                        a = TERM_RED; 
     784                                        break; 
    767785                                } 
     786                                default: 
     787                                { 
     788                                        a = TERM_WHITE; 
     789                                        break; 
     790                                } 
     791                        } 
    768792                } 
    769793 
     
    829853{ 
    830854        object_type *o_ptr; 
    831         byte info = cave_info[y][x]; 
     855        byte info; 
     856 
     857        assert(x < DUNGEON_WID); 
     858        assert(y < DUNGEON_HGT); 
     859 
     860        info = cave_info[y][x]; 
    832861         
    833862        /* Default "clear" values, others will be set later where appropriate. */ 
     
    902931        if (g->hallucinate && g->m_idx == 0 && g->first_k_idx == 0) 
    903932        { 
    904                 if (rand_int(256) == 0 && g->f_idx < FEAT_PERM_SOLID
     933                if (rand_int(256) == 0 && (g->f_idx < FEAT_PERM_SOLID)
    905934                { 
    906935                        /* Normally, make an imaginary monster */ 
     
    920949                } 
    921950        } 
     951 
     952        assert(g->f_idx <= FEAT_PERM_SOLID); 
     953        assert(g->m_idx < (u32b) mon_max); 
     954        assert(g->first_k_idx < z_info->k_max); 
     955        /* All other g fields are 'flags', mostly booleans. */ 
    922956} 
    923957 
     
    15581592 
    15591593        monster_race *r_ptr = &r_info[0]; 
    1560  
    15611594 
    15621595        /* Desired map height */