ACSUtils Wiki

An ACS library for ZDoom-based ports

User Tools

Site Tools


functions:packbytes

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
functions:packbytes [2017/03/19 17:36] korshunfunctions:packbytes [2017/03/19 18:10] korshun
Line 4: Line 4:
  
 ===== Description ===== ===== Description =====
-Packs four bytes into one integer and returns the result. The bytes' values must be in [0, 255] range.+Packs four bytes into one integer and returns the result. The bytes must be in the [0, 255] range.
  
 The packed values can be retrieved using [[UnpackByte]]. The packed values can be retrieved using [[UnpackByte]].
  
-This functions can be used to pass more than 3 or 4 arguments to a script in a readable way.+<note tip> 
 +It is intended to be used to pass more than 3 or 4 arguments to a script if the range of the values is small. 
 + 
 +You can also pack shorts (-32768 to 32767) using [[PackShorts]]. 
 + 
 +If you need more extreme packing, you should code it yourself.</note>
  
 ===== Examples ===== ===== Examples =====
Line 21: Line 26:
 Passing a color to a script: Passing a color to a script:
 <code> <code>
-int color = PackBytes(255, 128, 0, 128); // red, green, blue, alpha +function void SomeFunction(void) 
-ACS_ExecuteAlways(somescript, 0, x, y, color);+
 +    // red, green, blue, alpha 
 +    int color = PackBytes(255, 128, 0, 128);  
 +    ACS_ExecuteAlways(somescript, 0, x, y, color); 
 +
 + 
 +script somescript (int x, int y, int color) 
 +
 +    int r = UnpackByte1(color); 
 +    int g = UnpackByte2(color); 
 +    int b = UnpackByte3(color); 
 +    int a = UnpackByte4(color); 
 +}
 </code> </code>
 +
functions/packbytes.txt · Last modified: 2017/04/17 20:47 by korshun