X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2FASM.c;h=9cad09d548a65f105ce0c765b3d27142486c994c;hb=be1c10e7863850eba871b2c0da9d635313b2bc01;hp=6f0484ae766b062dc7ca09a6c25be4bb939a220e;hpb=8d3d7d213a9691455a49544624bf380e85f43461;p=rocksndiamonds.git diff --git a/src/game_sp/ASM.c b/src/game_sp/ASM.c index 6f0484ae..9cad09d5 100644 --- a/src/game_sp/ASM.c +++ b/src/game_sp/ASM.c @@ -69,7 +69,11 @@ int HighByte(int Var) int SgnHighByte(int Var) // extends the signum to 16 bit { +#if 1 + short SgnHighByte; +#else int SgnHighByte; +#endif if (Var & 0x8000) { @@ -125,30 +129,30 @@ void MySub(int *A, int B) *A = *A - B; } -int SHR(int Var, int Count) +int SHR(int *Var, int Count) { int SHR; int i; - if (Var & 0x8000) + if (*Var & 0x8000) { - Var = ((Var & 0x7FFF) / 2) | 0x4000; + *Var = ((*Var & 0x7FFF) / 2) | 0x4000; } else { - Var = Var / 2; + *Var = *Var / 2; } for (i = 2; i <= Count; i++) { - Var = Var / 2; + *Var = *Var / 2; } return SHR; } -int SHL(int Var, int Count) +int SHL(int *Var, int Count) { int SHL; @@ -156,14 +160,14 @@ int SHL(int Var, int Count) for (i = 1; i <= Count; i++) { - Var = Var & 0x7FFF; - if ((Var & 0x4000) != 0) + *Var = *Var & 0x7FFF; + if ((*Var & 0x4000) != 0) { - Var = (2 * (Var & 0x3FFF)) | 0x8000; + *Var = (2 * (*Var & 0x3FFF)) | 0x8000; } else { - Var = 2 * Var; + *Var = 2 * *Var; } }