void GScr_GetCvarFloat() { const char *stringval; if(Scr_GetNumParam() != 1) { Scr_Error("Usage: getcvarfloat <cvarname>"); } stringval = Cvar_GetVariantString(Scr_GetString(0)); Scr_AddFloat(atof(stringval)); }
__declspec(dllexport) void GI_PushFloat(float value) { Scr_AddFloat(value); }
void GScr_StrPixLen(){ if(Scr_GetNumParam() != 1){ Scr_Error("Usage: StrPixLen(<string>)"); } char* string = Scr_GetString(0); int halfPixelCounter = 0; while( *string ){ switch(*string){ case '\'': halfPixelCounter += 2; break; case 'i': case 'j': case 'l': case '.': case ',': case ':': case ';': case '_': case '%': halfPixelCounter += 4; break; case 'f': case 'I': case '-': case '|': halfPixelCounter += 5; break; case 't': case 'r': case '!': case '/': case '\\': case '"': halfPixelCounter += 6; break; case '(': case ')': case '[': case ']': halfPixelCounter += 7; break; case 'T': case '{': case '}': case '*': halfPixelCounter += 8; break; case 'a': case 'c': case 'g': case 'k': case 's': case 'v': case 'x': case 'z': case 'F': case 'J': case 'L': case 'Y': case 'Z': halfPixelCounter += 9; break; case ' ': /*Save the positions of the last recent wordspacer*/ case 'd': case 'h': case 'n': case 'A': case 'P': case 'S': case 'V': case 'X': case '?': halfPixelCounter += 10; break; case 'B': case 'D': case 'G': case 'K': case 'O': case 'Q': case 'R': case 'U': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case '$': case '<': case '>': case '=': case '+': case '^': case '~': halfPixelCounter += 11; break; case 'H': case 'N': case '#': halfPixelCounter += 12; break; case 'w': case '&': halfPixelCounter += 13; break; case 'W': case 'M': case '@': halfPixelCounter += 14; break; case 'm': halfPixelCounter += 15; default: halfPixelCounter += 12; } string++; } float result = (float)halfPixelCounter / 2.0; Scr_AddFloat(result); }