From: Christian S. <blu...@us...> - 2005-03-26 11:54:36
|
Update of /cvsroot/planeshift/planeshift/src/server In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13613/src/server Modified Files: gem.cpp gem.h Log Message: - Fixed the stamina penalty causing strafing to result in autorun - Autorun now stops if you are low on stamina - Made the regen progress a bit less jumpy - Fixed the .000000 bug in the numberpromptwindow (Thanks Kenny Graunke!) Index: gem.cpp =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/gem.cpp,v retrieving revision 1.222 retrieving revision 1.223 diff -C2 -d -r1.222 -r1.223 *** gem.cpp 25 Mar 2005 10:07:54 -0000 1.222 --- gem.cpp 26 Mar 2005 11:54:24 -0000 1.223 *************** *** 103,107 **** // #define PSPROXDEBUG ! #define SPEED_WALK 2 GEMSupervisor *gemObject::cel = NULL; --- 103,107 ---- // #define PSPROXDEBUG ! #define SPEED_WALK 2.0f GEMSupervisor *gemObject::cel = NULL; *************** *** 1976,1981 **** lastDR = csGetTicks(); ! int speed = -speedraw.z; ! if(speed < 0) speed = -speed; --- 1976,1981 ---- lastDR = csGetTicks(); ! float speed = -speedraw.z; ! if(speed < 0.0f) speed = -speed; *************** *** 1983,1987 **** #ifdef STM_PROCESS_DEBUG ! printf("Processing Stamina.."); #endif --- 1983,1987 ---- #ifdef STM_PROCESS_DEBUG ! printf("Processing Stamina..\n"); #endif *************** *** 2010,2014 **** } ! if((csGetTicks() - lastDR) > 1000 && !(speed == 0 && !moving)) { int times = (csGetTicks() - lastDR) / 1000; // If we're slow, we need to multiply the stamina with the secs passed --- 2010,2014 ---- } ! if((csGetTicks() - lastDR) > 1000 && !(speed == 0.0f && !moving)) { int times = (csGetTicks() - lastDR) / 1000; // If we're slow, we need to multiply the stamina with the secs passed *************** *** 2030,2062 **** // Disable the stamina gain ! if(moving <= 2) psChar->SetStaminaRate(0.0f,true); // 0.0 in regen for running } ! else if(speed <= SPEED_WALK) { script = staminaWalk; movementType = 2.5f; ! if(moving != SPEED_WALK) { psChar->SetStaminaRate(psChar->GetRaceInfo()->baseRegen[PSRACEINFO_STAMINA_PHYSICAL_WALK],true); psChar->SetStaminaRate(psChar->GetRaceInfo()->baseRegen[PSRACEINFO_STAMINA_MENTAL_WALK],false); #ifdef STM_PROCESS_DEBUG ! printf("Setting walk stamina rate.."); #endif } } ! else if(speed == 0) { ! if(moving > 0) { psChar->SetStaminaRate(psChar->GetRaceInfo()->baseRegen[PSRACEINFO_STAMINA_PHYSICAL_STILL],true); psChar->SetStaminaRate(psChar->GetRaceInfo()->baseRegen[PSRACEINFO_STAMINA_MENTAL_STILL],false); #ifdef STM_PROCESS_DEBUG ! printf("Setting rest stamina rate.."); #endif } ! moving = 0; return; } --- 2030,2068 ---- // Disable the stamina gain ! if(moving <= SPEED_WALK) ! { psChar->SetStaminaRate(0.0f,true); // 0.0 in regen for running + psChar->SetStaminaRate(0.0f,false); // 0.0 in regen for running + #ifdef STM_PROCESS_DEBUG + printf("Setting running stamina rate..\n"); + #endif + } } ! else if(speed <= SPEED_WALK && speed != 0.0f ) { script = staminaWalk; movementType = 2.5f; ! if(moving > SPEED_WALK || moving == 0.0f ) { psChar->SetStaminaRate(psChar->GetRaceInfo()->baseRegen[PSRACEINFO_STAMINA_PHYSICAL_WALK],true); psChar->SetStaminaRate(psChar->GetRaceInfo()->baseRegen[PSRACEINFO_STAMINA_MENTAL_WALK],false); #ifdef STM_PROCESS_DEBUG ! printf("Setting walk stamina rate..\n"); #endif } } ! else if(speed == 0.0f) { ! if(moving > 0.0f) { psChar->SetStaminaRate(psChar->GetRaceInfo()->baseRegen[PSRACEINFO_STAMINA_PHYSICAL_STILL],true); psChar->SetStaminaRate(psChar->GetRaceInfo()->baseRegen[PSRACEINFO_STAMINA_MENTAL_STILL],false); #ifdef STM_PROCESS_DEBUG ! printf("Setting rest stamina rate..\n"); #endif } ! moving = 0.0f; return; } *************** *** 2067,2071 **** { CPrintf(CON_ERROR, ! "Can't apply stamina calculations on the %f speed of client %d!", speedraw.z,GetClientID() ); --- 2073,2077 ---- { CPrintf(CON_ERROR, ! "Can't apply stamina calculations on the %f speed of client %d!\n", speedraw.z,GetClientID() ); Index: gem.h =================================================================== RCS file: /cvsroot/planeshift/planeshift/src/server/gem.h,v retrieving revision 1.101 retrieving revision 1.102 diff -C2 -d -r1.101 -r1.102 *** gem.h 21 Mar 2005 06:33:43 -0000 1.101 --- gem.h 26 Mar 2005 11:54:25 -0000 1.102 *************** *** 408,412 **** csTicks lastDR; ! int moving; /** Production Start Pos is used to record the place where people started --- 408,412 ---- csTicks lastDR; ! float moving; /** Production Start Pos is used to record the place where people started |