MCPcopy Create free account
hub / github.com/diasurgical/devilution / CheckStats

Function CheckStats

Source/player.cpp:3868–3916  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3866}
3867
3868void CheckStats(int p)
3869{
3870 int c, i;
3871
3872 if ((DWORD)p >= MAX_PLRS) {
3873 app_fatal("CheckStats: illegal player %d", p);
3874 }
3875
3876 if (plr[p]._pClass == PC_WARRIOR) {
3877 c = PC_WARRIOR;
3878 } else if (plr[p]._pClass == PC_ROGUE) {
3879 c = PC_ROGUE;
3880 } else if (plr[p]._pClass == PC_SORCERER) {
3881 c = PC_SORCERER;
3882 }
3883
3884 for (i = 0; i < 4; i++) {
3885 switch (i) {
3886 case ATTRIB_STR:
3887 if (plr[p]._pBaseStr > MaxStats[c][ATTRIB_STR]) {
3888 plr[p]._pBaseStr = MaxStats[c][ATTRIB_STR];
3889 } else if (plr[p]._pBaseStr < 0) {
3890 plr[p]._pBaseStr = 0;
3891 }
3892 break;
3893 case ATTRIB_MAG:
3894 if (plr[p]._pBaseMag > MaxStats[c][ATTRIB_MAG]) {
3895 plr[p]._pBaseMag = MaxStats[c][ATTRIB_MAG];
3896 } else if (plr[p]._pBaseMag < 0) {
3897 plr[p]._pBaseMag = 0;
3898 }
3899 break;
3900 case ATTRIB_DEX:
3901 if (plr[p]._pBaseDex > MaxStats[c][ATTRIB_DEX]) {
3902 plr[p]._pBaseDex = MaxStats[c][ATTRIB_DEX];
3903 } else if (plr[p]._pBaseDex < 0) {
3904 plr[p]._pBaseDex = 0;
3905 }
3906 break;
3907 case ATTRIB_VIT:
3908 if (plr[p]._pBaseVit > MaxStats[c][ATTRIB_VIT]) {
3909 plr[p]._pBaseVit = MaxStats[c][ATTRIB_VIT];
3910 } else if (plr[p]._pBaseVit < 0) {
3911 plr[p]._pBaseVit = 0;
3912 }
3913 break;
3914 }
3915 }
3916}
3917
3918void ModifyPlrStr(int p, int l)
3919{

Callers 2

OperateShrineFunction · 0.85
OperateFountainsFunction · 0.85

Calls 1

app_fatalFunction · 0.85

Tested by

no test coverage detected