====== PackShorts ====== {{tag>packing}} ''int PackShorts(int short1, int short2)'' ===== Description ===== Packs two short integers (-32768 to 32767) into one integer and returns the result. The packed values can be retrieved using [[UnpackShortX]]. 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 individual bytes (0 to 256) using [[PackBytes]]. If you need more extreme packing, you should code it yourself. ===== Examples ===== int packed = PackShorts(12345, -15000); UnpackShort1(packed) -> 12345 UnpackShort2(packed) -> -15000 Passing a 2D actor position to a script: function void SomeFunction(void) { // Pack rounded 2D actor position into a single integer. int pos = PackShorts(GetActorX(0)>>16, GetActorY(0)>>16); ACS_ExecuteAlways(somescript, 0, stuff1, stuff2, pos); } script somescript (int stuff1, int stuff2, int pos) { // Extract actor position int x = UnpackShort1(pos); int y = UnpackShort2(pos); }