Quake c string
Quake C strings are one of the primitive types of Quake C. They are zero-terminated sequences of characters (meaning a series of ascii letters). Vanilla quake c offers no straightforward ways to modify a string once it is created and no way to combine existing strings into a new string.
In quake-c code, double quotation marks delimit the start and end of a string.
local string myString = "The Rune of Black Magic throbs evilly in your hand";
Escape Charaters
Much like the C programming language, strings in QuakeC have escape characters:
character | result |
---|---|
\n | new line |
\" | " |
\0 | unknown |
{{ | { |
}} | } |
Substitution
String substitution can be used when outputting text to the screen as in the following snippet:
local float msg_type = MSG_ONE; //could be broadcast etc
msg_entity = self.owner;
WriteByte(msg_type,SVC_PRINT); // SVC_CENTERPRINT etc
WriteShort(msg_type, 2); // 2 is the number of following arguments
WriteString(msg_type, "Player name: {}\n" );
WriteString(msg_type, self.owner.netname ); //substitute in player name where the {} was above
Uses
In Quake-C strings are used for
- FileNames
precache_model ("progs/wizard.mdl");
- text output
sprint (self, "not enough ammo.\n");
- identifiers
if (self.classname == "monster_ogre")
- lighting
lightstyle(1, "mmnmmommommnonmmonqnmmo");
- commands
stuffcmd (other, "bf\n");
- cvars
timelimit = cvar("timelimit") * 60;
- find
le2 = find( le1, target, "lightning");
Trivia
Searching through the existing entities in the world of quake can be done by strings
Strings can be printed/output to screen with a number of different methods
The maximum length of a string is 2048 characters
see also:
ftos creates a string from a floating point number
vtos creates a string representation of a vector
WriteString - sends a string to the quake engine