Changeset 912

Show
Ignore:
Timestamp:
05/17/08 08:28:47 (2 months ago)
Author:
takkaria
Message:

(#275) Rejig social status a bit. Social status depends entirely on character background, levels gained and is displayed as a textual name now.

Files:

Legend:

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

    r895 r912  
    391391 
    392392        /* Verify social class */ 
    393         if (social_class > 100) social_class = 100
     393        if (social_class > 75) social_class = 75
    394394        else if (social_class < 1) social_class = 1; 
    395395 
  • trunk/src/files.c

    r887 r912  
    999999} 
    10001000 
    1001  
    10021001/* 
    10031002 * Returns a "rating" of x depending on y, and sets "attr" to the 
     
    14711470static const region boundaries [] = 
    14721471{ 
    1473         { 0,   0,              0,              0 }, 
    1474         { 1,   2,              40,             8 }, /* Name, Class, ... */ 
    1475         { 1,   10,             22,             8 }, /* Cur Exp, Max Exp, ... */ 
    1476         { 26,  10,             17,             8 }, /* AC, melee, ... */ 
    1477         { 48,  10,             24,             8 }, /* skills */ 
    1478         { 26,  3,              13,             5 }, /* Age, ht, wt, ... */ 
    1479  
     1472        /* x   y     width, rows */ 
     1473        { 0,   0,              0,              0 }, 
     1474        { 1,   2,              40,             8 }, /* Name, Class, ... */ 
     1475        { 1,  10,              22,             8 }, /* Cur Exp, Max Exp, ... */ 
     1476        { 26, 10,              17,             8 }, /* AC, melee, ... */ 
     1477        { 48, 10,              24,             8 }, /* skills */ 
     1478        { 21,  3,               18,             5 }, /* Age, ht, wt, ... */ 
    14801479}; 
    14811480 
     
    15631562{ 
    15641563        return val < max ? TERM_YELLOW : TERM_L_GREEN; 
     1564} 
     1565 
     1566 
     1567static const char *show_status(void) 
     1568{ 
     1569        int sc = p_ptr->sc; 
     1570        sc /= 10; 
     1571 
     1572        switch (sc) 
     1573        { 
     1574                case 0: 
     1575                case 1: 
     1576                        return "Pariah"; 
     1577 
     1578                case 2: 
     1579                        return "Outcast"; 
     1580 
     1581                case 3: 
     1582                case 4: 
     1583                        return "Unknown"; 
     1584 
     1585                case 5: 
     1586                        return "Known"; 
     1587 
     1588                case 6: 
     1589                /* Maximum status by birth 75 = 7 */ 
     1590                case 7: 
     1591                        return "Liked"; 
     1592 
     1593                case 8: 
     1594                        return "Well-liked"; 
     1595 
     1596                case 9: 
     1597                case 10: 
     1598                        return "Respected"; 
     1599 
     1600                case 11: 
     1601                case 12: 
     1602                        return "Role model"; 
     1603 
     1604                case 13: 
     1605                        return "Feared"; 
     1606 
     1607                case 14: 
     1608                case 15: 
     1609                        return "Lordly"; 
     1610        } 
     1611 
     1612        return format("%d", sc); 
    15651613} 
    15661614 
     
    16631711        P_I(TERM_L_BLUE, "Height",              "%y",   i2u(p_ptr->ht), END  ); 
    16641712        P_I(TERM_L_BLUE, "Weight",              "%y",   i2u(p_ptr->wt), END  ); 
    1665         P_I(TERM_L_BLUE, "Status",             "%y",   i2u(p_ptr->sc), END  ); 
     1713        P_I(TERM_L_BLUE, "Social",             "%y",   s2u(show_status()), END  ); 
    16661714        P_I(TERM_L_BLUE, "Maximize",    "%y",   c2u(adult_maximize ? 'Y' : 'N'), END); 
    16671715#if 0 
  • trunk/src/xtra2.c

    r899 r912  
    10491049        { 
    10501050                char buf[80]; 
    1051                  
     1051 
    10521052                /* Gain a level */ 
    10531053                p_ptr->lev++; 
    10541054 
    10551055                /* Save the highest level */ 
    1056                 if (p_ptr->lev > p_ptr->max_lev)  
     1056                if (p_ptr->lev > p_ptr->max_lev) 
    10571057                { 
    10581058                        p_ptr->max_lev = p_ptr->lev; 
     
    10611061                        strnfmt(buf, sizeof(buf), "Reached level %d", p_ptr->lev); 
    10621062                        history_add(buf, HISTORY_GAIN_LEVEL, 0); 
    1063                          
    1064                 } 
    1065                          
     1063                } 
     1064 
    10661065                /* Message */ 
    10671066                message_format(MSG_LEVEL, p_ptr->lev, "Welcome to level %d.", p_ptr->lev); 
     1067 
     1068                /* Add to social class */ 
     1069                p_ptr->sc += randint1(2); 
     1070                if (p_ptr->sc > 150) p_ptr->sc = 150; 
    10681071 
    10691072                /* Update some stuff */