Ignore:
Timestamp:
Mar 4, 2013, 3:21:23 PM (12 years ago)
Author:
alloc
Message:

Daodan: Changed makefile (more warnings, messages always in english, C99), cleaned up symbol Oni definitions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Daodan/src/Daodan_BSL.c

    r681 r688  
    1919uint16_t ONICALL bsl_int32mul(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
    2020{
    21         ret->value_int32 = args[0].value_int32 * args[1].value_int32;
     21        ret->val.value_int32 = args[0].val.value_int32 * args[1].val.value_int32;
    2222        ret->type = sl_int32;
    2323        return 0;
     
    3030       
    3131        if (args[0].type == sl_int32)
    32                 val1 = args[0].value_int32;
     32                val1 = args[0].val.value_int32;
    3333        else
    34                 val1 = args[0].value_float;
     34                val1 = args[0].val.value_float;
    3535       
    3636        if (args[1].type == sl_int32)
    37                 val2 = args[1].value_int32;
     37                val2 = args[1].val.value_int32;
    3838        else
    39                 val2 = args[1].value_float;
    40        
    41         ret->value_float = (float)(val1 * val2);
     39                val2 = args[1].val.value_float;
     40       
     41        ret->val.value_float = (float)(val1 * val2);
    4242        ret->type = sl_float;
    4343        return 0;
     
    4646uint16_t ONICALL bsl_int32div(sl_callinfo* callinfo, uint32_t numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
    4747{
    48         ret->value_int32 = args[0].value_int32 / args[1].value_int32;
     48        ret->val.value_int32 = args[0].val.value_int32 / args[1].val.value_int32;
    4949        ret->type = sl_int32;
    5050        return 0;
     
    5656       
    5757        if (args[0].type == sl_int32)
    58                 val1 = args[0].value_int32;
     58                val1 = args[0].val.value_int32;
    5959        else
    60                 val1 = args[0].value_float;
     60                val1 = args[0].val.value_float;
    6161       
    6262        if (args[1].type == sl_int32)
    63                 val2 = args[1].value_int32;
     63                val2 = args[1].val.value_int32;
    6464        else
    65                 val2 = args[1].value_float;
    66        
    67         ret->value_float = (float)(val1 / val2);
     65                val2 = args[1].val.value_float;
     66       
     67        ret->val.value_float = (float)(val1 / val2);
    6868        ret->type = sl_float;
    6969        return 0;
     
    7575        int32_t end = 0;
    7676       
    77         if (args[0].value_int32 == args[1].value_int32)
     77        if (args[0].val.value_int32 == args[1].val.value_int32)
    7878                return 1;
    79         else if (args[0].value_int32 > args[1].value_int32)
    80         {
    81                 start = args[1].value_int32;
    82                 end = args[0].value_int32;
     79        else if (args[0].val.value_int32 > args[1].val.value_int32)
     80        {
     81                start = args[1].val.value_int32;
     82                end = args[0].val.value_int32;
    8383        }
    8484        else
    8585        {
    86                 start = args[0].value_int32;
    87                 end = args[1].value_int32;
    88         }
    89        
    90         ret->value_int32 = start + (rand() % (uint32_t)(end - start + 1));
     86                start = args[0].val.value_int32;
     87                end = args[1].val.value_int32;
     88        }
     89       
     90        ret->val.value_int32 = start + (rand() % (uint32_t)(end - start + 1));
    9191        ret->type = sl_int32;
    9292        return 0;
     
    9797        int index;
    9898        if (numargs == 0) index = 0;
    99         else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    100         else index = args[0].value_int32;
     99        else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     100        else index = args[0].val.value_int32;
    101101        //killcount = ONgGameState->CharacterStorage[index].Kills;
    102102                //ONgGameState + index * 0x16A0 + 0x1260 + 0x1670;
    103         ret->value_int32 = ONgGameState->CharacterStorage[index].Kills;
     103        ret->val.value_int32 = ONgGameState->CharacterStorage[index].Kills;
    104104        ret->type = sl_int32;
    105105        return 0;
     
    110110        int index;
    111111        if (numargs == 0) index = 0;
    112         else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    113         else index = args[0].value_int32;
    114         ret->value_int32 = ONgGameState->CharacterStorage[index].Damage;
     112        else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     113        else index = args[0].val.value_int32;
     114        ret->val.value_int32 = ONgGameState->CharacterStorage[index].Damage;
    115115        ret->type = sl_int32;
    116116        return 0;
     
    127127
    128128        if (numargs < 2 || args[1].type != sl_str32) return 1;
    129         else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    130         else index = args[0].value_int32;
    131 
    132        
    133 
    134         if(!strcmp(args[1].value_str32,"ammo"))
     129        else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     130        else index = args[0].val.value_int32;
     131
     132       
     133
     134        if(!strcmp(args[1].val.value_str32,"ammo"))
    135135        {
    136136                returnval = &(Chr[index].Inventory.AmmoUsed);
    137137        }
    138         else if(!strcmp(args[1].value_str32,"hypo"))
     138        else if(!strcmp(args[1].val.value_str32,"hypo"))
    139139        {
    140140                returnval = &(Chr[index].Inventory.HypoUsed);
    141141        }
    142         else if(!strcmp(args[1].value_str32,"cells"))
     142        else if(!strcmp(args[1].val.value_str32,"cells"))
    143143        {
    144144                returnval = &(Chr[index].Inventory.CellsUsed);
    145145        }
    146         else if(!strcmp(args[1].value_str32,"invis"))
     146        else if(!strcmp(args[1].val.value_str32,"invis"))
    147147        {
    148148                returnval = &(Chr[index].Inventory.CloakUsed);
    149149        }
    150         else if(!strcmp(args[1].value_str32,"shield"))
     150        else if(!strcmp(args[1].val.value_str32,"shield"))
    151151        {
    152152                returnval = &(Chr[index].Inventory.ShieldUsed);
    153153        }
    154         else if(!strcmp(args[1].value_str32,"lsi"))
     154        else if(!strcmp(args[1].val.value_str32,"lsi"))
    155155        {
    156156                returnval = &(Chr[index].Inventory.hasLSI);
     
    170170        //todo, add setting
    171171       
    172         if(is_lsi) ret->value_int32 = (int)*(bool*)returnval;
    173         else    ret->value_int32 = *(int*)returnval;
     172        if(is_lsi) ret->val.value_int32 = (int)*(bool*)returnval;
     173        else    ret->val.value_int32 = *(int*)returnval;
    174174        ret->type = sl_int32;
    175175
    176176        if (numargs >= 3)
    177177        {
    178                 if(is_lsi) *(bool*)returnval = args[2].value_int32;
    179                 else *(int*)returnval = args[2].value_int32;
     178                if(is_lsi) *(bool*)returnval = args[2].val.value_int32;
     179                else *(int*)returnval = args[2].val.value_int32;
    180180        }
    181181       
     
    190190        int* health;
    191191        if (numargs == 0) index = 0;
    192         else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    193         else index = args[0].value_int32;
     192        else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     193        else index = args[0].val.value_int32;
    194194        Chr = ONgGameState->CharacterStorage;
    195195        health = &Chr[index].Health;
    196196
    197         ret->value_int32 = *health;
    198         ret->type = sl_int32;
    199 
    200         if (args[1].value_int32) {
    201                 *health = args[1].value_int32;
    202         }
    203         ret->value_int32 = *health;
     197        ret->val.value_int32 = *health;
     198        ret->type = sl_int32;
     199
     200        if (args[1].val.value_int32) {
     201                *health = args[1].val.value_int32;
     202        }
     203        ret->val.value_int32 = *health;
    204204        ret->type = sl_int32;
    205205        return 0;
     
    211211        Character* Chr;
    212212        if (numargs == 0) index = 0;
    213         else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    214         else index = args[0].value_int32;
     213        else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     214        else index = args[0].val.value_int32;
    215215        Chr = ONgGameState->CharacterStorage ;
    216216       
     
    227227        DDrConsole_PrintF("NoPath %s", Chr[index].ScriptNoPath);
    228228        */
    229         ret->value_int32 = Chr[index].RegenHax;
     229        ret->val.value_int32 = Chr[index].RegenHax;
    230230        ret->type = sl_int32;
    231231
    232232        if (numargs >= 2) {
    233                 Chr[index].RegenHax = args[1].value_int32;
     233                Chr[index].RegenHax = args[1].val.value_int32;
    234234        }
    235235        return 0;
     
    246246        if (numargs < 2) return 1;
    247247
    248         if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    249         else index = args[0].value_int32;
    250         if (index == -1) index = args[0].value_int32;
    251 
    252         if (args[1].type == sl_str32) index2 = DDrGetCharacterIndexFromName(args[1].value_str32);
    253         else index2 = args[1].value_int32;
    254         if (index2 == -1) index2 = args[1].value_int32;
     248        if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     249        else index = args[0].val.value_int32;
     250        if (index == -1) index = args[0].val.value_int32;
     251
     252        if (args[1].type == sl_str32) index2 = DDrGetCharacterIndexFromName(args[1].val.value_str32);
     253        else index2 = args[1].val.value_int32;
     254        if (index2 == -1) index2 = args[1].val.value_int32;
    255255                Char1 = &Chr[index];
    256256        Char2 = &Chr[index2];
    257257
    258258
    259         ret->value_float = sqrt( pow((Char1->Location.X - Char2->Location.X), 2) + pow((Char1->Location.Y - Char2->Location.Y), 2) + pow((Char1->Location.Z - Char2->Location.Z),2));
     259        ret->val.value_float = sqrt( pow((Char1->Location.X - Char2->Location.X), 2) + pow((Char1->Location.Y - Char2->Location.Y), 2) + pow((Char1->Location.Z - Char2->Location.Z),2));
    260260        ret->type = sl_float;
    261261        return 0;
     
    273273
    274274        if (numargs < 2) return 1;
    275         if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    276         else index = args[0].value_int32;
    277         if (index == -1) index = args[0].value_int32;
     275        if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     276        else index = args[0].val.value_int32;
     277        if (index == -1) index = args[0].val.value_int32;
    278278        Chr = ONgGameState->CharacterStorage;
    279279        if(numargs == 3)
    280280        {
    281                 if (!strcmp(args[1].value_str32,"X") || !strcmp(args[1].value_str32,"x"))
     281                if (!strcmp(args[1].val.value_str32,"X") || !strcmp(args[1].val.value_str32,"x"))
    282282                        loc = &(Chr[index].Position.X);
    283                 else if (!strcmp(args[1].value_str32,"Y") || !strcmp(args[1].value_str32,"y"))
     283                else if (!strcmp(args[1].val.value_str32,"Y") || !strcmp(args[1].val.value_str32,"y"))
    284284                        loc = &(Chr[index].Position.Y);
    285                 else if (!strcmp(args[1].value_str32,"Z") || !strcmp(args[1].value_str32,"z"))
     285                else if (!strcmp(args[1].val.value_str32,"Z") || !strcmp(args[1].val.value_str32,"z"))
    286286                        loc = &(Chr[index].Position.Z);
    287287        }
    288288        else if (numargs == 4) {
    289289                ActiveCharacter* Active = (ActiveCharacter*)ONrGetActiveCharacter(&Chr[index]);
    290                 Chr[index].Location.X = args[1].value_float;
    291                 Chr[index].Location.Y = args[2].value_float;
    292                 Chr[index].Location.Z = args[3].value_float;
     290                Chr[index].Location.X = args[1].val.value_float;
     291                Chr[index].Location.Y = args[2].val.value_float;
     292                Chr[index].Location.Z = args[3].val.value_float;
    293293                if(Active)
    294294                {
    295295                        Active->PhyContext->Position = Chr[index].Location;
    296296                }
    297                 ret->value_float = 1;
     297                ret->val.value_float = 1;
    298298                ret->type = sl_float;
    299299                return 0;
     
    301301        else return 1;
    302302       
    303         ret->value_float = *loc;
     303        ret->val.value_float = *loc;
    304304        ret->type = sl_float;
    305305       
    306306        if(numargs == 3) {
    307307                //currently broken, does nothing.
    308                 *loc = args[2].value_float;
     308                *loc = args[2].val.value_float;
    309309        }
    310310        return 0;
     
    315315        int index;
    316316        if (numargs == 0) index = 0;
    317         else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    318         else index = args[0].value_int32;
     317        else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     318        else index = args[0].val.value_int32;
    319319        if(1) {
    320320        Character* Chr = ONgGameState->CharacterStorage ;
     
    323323        int oldhealth = Chr->Health;
    324324        if (numargs >= 2) {
    325                 *maxhealth = args[1].value_int32;
    326         }
    327         if (numargs >= 3 && args[2].value_bool) {
    328                 Chr->Health = (int)(((float)args[1].value_int32 / (float)oldmaxhealth) * (float)oldhealth);
    329         }
    330         ret->value_int32 = oldmaxhealth;
     325                *maxhealth = args[1].val.value_int32;
     326        }
     327        if (numargs >= 3 && args[2].val.value_bool) {
     328                Chr->Health = (int)(((float)args[1].val.value_int32 / (float)oldmaxhealth) * (float)oldhealth);
     329        }
     330        ret->val.value_int32 = oldmaxhealth;
    331331        ret->type = sl_int32;
    332332        return 0;
     
    340340        int index;
    341341        if (numargs == 0) index = 0;
    342         else    if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    343         else index = args[0].value_int32;
     342        else    if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     343        else index = args[0].val.value_int32;
    344344        if(1) {
    345345        Character* Chr = ONgGameState->CharacterStorage;
    346346        ActiveCharacter* Active = (ActiveCharacter*)ONrGetActiveCharacter(&Chr[index]);
    347347        if (!Active) return 1;
    348 //      ret->value_int32 = Active->LastDamageSourceCharacter;
     348//      ret->val.value_int32 = Active->LastDamageSourceCharacter;
    349349        ret->type = sl_int32;
    350350        return 0;
     
    360360
    361361        if (numargs == 0) index = 0;
    362         else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    363         else index = args[0].value_int32;
     362        else if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     363        else index = args[0].val.value_int32;
    364364        if (index == -1) {
    365365                ret->type = sl_str32;
    366                 ret->value_str32 = "NULL";
     366                ret->val.value_str32 = "NULL";
    367367                return 0;
    368368        }
    369369        name = &ONgGameState->CharacterStorage[index].Name;
    370370        if (numargs == 2) {
    371                 strncpy(name, (char*)args[1].value_str32, 31);
     371                strncpy(name, (char*)args[1].val.value_str32, 31);
    372372        }
    373373       
    374374        ret->type = sl_str32;
    375         ret->value_str32 = name;
     375        ret->val.value_str32 = name;
    376376       
    377377        return 0;
     
    383383        //testing numargs...
    384384        ret->type = sl_int32;
    385         ret->value_int32 = numargs;
     385        ret->val.value_int32 = numargs;
    386386        return 0;
    387387}
     
    399399        }
    400400        if(numargs == 0) return 0;
    401         if(numargs > 1 ) color.R = (char)args[1].value_int32;
     401        if(numargs > 1 ) color.R = (char)args[1].val.value_int32;
    402402        else color.R = 255;
    403         if(numargs > 2 ) color.G = (char)args[2].value_int32;
     403        if(numargs > 2 ) color.G = (char)args[2].val.value_int32;
    404404        else color.G = 255;
    405         if(numargs > 3 ) color.B = (char)args[3].value_int32;
     405        if(numargs > 3 ) color.B = (char)args[3].val.value_int32;
    406406        else color.B = 255;
    407407        color.A = 0;
    408         if(numargs > 5 ) shade.R = (char)args[5].value_int32;
     408        if(numargs > 5 ) shade.R = (char)args[5].val.value_int32;
    409409        else shade.R = 0x3F;
    410         if(numargs > 6 ) shade.G = (char)args[6].value_int32;
     410        if(numargs > 6 ) shade.G = (char)args[6].val.value_int32;
    411411        else shade.G = 0x3F;
    412         if(numargs > 7 ) shade.B = (char)args[7].value_int32;
     412        if(numargs > 7 ) shade.B = (char)args[7].val.value_int32;
    413413        else shade.B = 0x3F;
    414414        shade.A = 0;
    415415
    416         DDrConsole_PrintColored(args[0].value_str32, 1, color, shade);
     416        DDrConsole_PrintColored(args[0].val.value_str32, 1, color, shade);
    417417        return 0;
    418418}
     
    423423
    424424        ret->type = sl_int32;
    425         ret->value_int32 = DDrGetCharacterIndexFromName(args[0].value_str32);
     425        ret->val.value_int32 = DDrGetCharacterIndexFromName(args[0].val.value_str32);
    426426
    427427        return 0;
     
    488488        Character* Chr;
    489489        ActiveCharacter* Active;
    490         if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    491         else index = args[0].value_int32;
     490        if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     491        else index = args[0].val.value_int32;
    492492
    493493        Chr = &(ONgGameState->CharacterStorage[index]);
     
    497497        for(i = 1; i < numargs - 1; i++) {
    498498                for(j = 0; j < 32; j++) {
    499                         if(!strcmp(args[i].value_str32, Actions1[j].Name)) {
     499                        if(!strcmp(args[i].val.value_str32, Actions1[j].Name)) {
    500500                                Input1 = Input1 | Actions1[j].Bit;
    501501                        }
    502502                }
    503503                for(j = 0; j < 9; j++) {
    504                         if(!strcmp(args[i].value_str32, Actions2[j].Name)) {
     504                        if(!strcmp(args[i].val.value_str32, Actions2[j].Name)) {
    505505                                Input2 = Input2 | Actions2[j].Bit;
    506506                        }
     
    513513                return 0;
    514514        }
    515         if (  args[numargs - 1].value_int32 <= 0) {
     515        if (  args[numargs - 1].val.value_int32 <= 0) {
    516516                return 0;
    517517        }
    518518        else {
    519                  args[numargs - 1].value_int32 -= 1;
     519                 args[numargs - 1].val.value_int32 -= 1;
    520520                *dontuse2 = 1;
    521521                *dontuse1 = 1;
     
    528528//              int index;
    529529//              if (numargs < 4) index = 0;
    530 //              else    if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    531 //              else index = args[0].value_int32;
     530//              else    if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     531//              else index = args[0].val.value_int32;
    532532
    533533//              Character* Chr = ONgGameState->CharacterStorage;
     
    540540        for(i = 0; i < numargs; i++) {
    541541                for(j = 0; j < 32; j++) {
    542                         //DDrConsole_PrintF("Testing %s against %s 0x%x", args[i].value_str32, Actions1[j].Name, Actions1[j].Bit);
    543                         if(!strcmp(args[i].value_str32, Actions1[j].Name)) {
     542                        //DDrConsole_PrintF("Testing %s against %s 0x%x", args[i].val.value_str32, Actions1[j].Name, Actions1[j].Bit);
     543                        if(!strcmp(args[i].val.value_str32, Actions1[j].Name)) {
    544544                                Input1 = Input1 | Actions1[j].Bit;
    545545                                //DDrConsole_PrintF("Success!");
     
    548548                }
    549549                for(j = 0; j < 9; j++) {
    550                         if(!strcmp(args[i].value_str32, Actions2[j].Name)) Input2 = Input2 | Actions2[j].Bit;
     550                        if(!strcmp(args[i].val.value_str32, Actions2[j].Name)) Input2 = Input2 | Actions2[j].Bit;
    551551       
    552552                }
    553553                }
    554554        //DDrConsole_PrintF("Testing: 0x%x Input: 0x%x",Input1, *(int*)(ONgGameState + 0xB8 + 0x10));
    555         ret->value_int32 = 0;
    556         ret->type = sl_int32;
    557         if ( (ONgGameState->Input.Current.Actions1 == Input1)  && (ONgGameState->Input.Current.Actions2 == Input2)) ret->value_int32 = 1;
     555        ret->val.value_int32 = 0;
     556        ret->type = sl_int32;
     557        if ( (ONgGameState->Input.Current.Actions1 == Input1)  && (ONgGameState->Input.Current.Actions2 == Input2)) ret->val.value_int32 = 1;
    558558        return 0;
    559559}
     
    563563//              int index;
    564564//              if (numargs < 4) index = 0;
    565 //              else    if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].value_str32);
    566 //              else index = args[0].value_int32;
     565//              else    if (args[0].type == sl_str32) index = DDrGetCharacterIndexFromName(args[0].val.value_str32);
     566//              else index = args[0].val.value_int32;
    567567
    568568//              Character* Chr = ONgGameState->CharacterStorage;
     
    582582
    583583        }
    584         if(numargs < 1 || args[0].value == 0)  return;
     584        if(numargs < 1 || args[0].val.value == 0)  return;
    585585        //for(i = 0; i < numargs; i++) {
    586586        */
    587587        i = 0;
    588588                for(j = 0; j < 32; j++) {
    589                         //DDrConsole_PrintF("Testing %s against %s 0x%x", args[i].value_str32, Actions1[j].Name, Actions1[j].Bit);
    590                         if(!strcmp(args[i].value_str32, Actions1[j].Name)) {
     589                        //DDrConsole_PrintF("Testing %s against %s 0x%x", args[i].val.value_str32, Actions1[j].Name, Actions1[j].Bit);
     590                        if(!strcmp(args[i].val.value_str32, Actions1[j].Name)) {
    591591                                Input1 = Input1 | Actions1[j].Bit;
    592592                                //DDrConsole_PrintF("Success!");
     
    595595                }
    596596                for(j = 0; j < 9; j++) {
    597                         if(!strcmp(args[i].value_str32, Actions2[j].Name)) Input2 = Input2 | Actions2[j].Bit;
     597                        if(!strcmp(args[i].val.value_str32, Actions2[j].Name)) Input2 = Input2 | Actions2[j].Bit;
    598598       
    599599                }
     
    622622        int i;
    623623        char* placeinoutput = output;
    624         char* placeininput = args[0].value_str32;
     624        char* placeininput = args[0].val.value_str32;
    625625        int formatnum = 0;
    626626        //fix the broken bsl numargs...
     
    670670                //sprintf(output, output, args[i].value_str32);
    671671                memcpy(buffer, output, 1024);
    672                 if(args[i].value == 0) break;
     672                if(args[i].val.value == 0) break;
    673673                switch(args[i].type)
    674674                {
    675675                case sl_bool:
    676676                case sl_int32:
    677                         sprintf(output, buffer, args[i].value_int32);
     677                        sprintf(output, buffer, args[i].val.value_int32);
    678678                        break;
    679679                case sl_float:
    680680                        //crashes oni, why?
    681                 //      sprintf(output, output, args[i].value_float);
     681                //      sprintf(output, output, args[i].val.value_float);
    682682                        break;
    683683                case sl_str32:
    684                         sprintf(output, buffer, args[i].value_str32);
     684                        sprintf(output, buffer, args[i].val.value_str32);
    685685                        break;
    686686                case sl_void:
     
    690690        }
    691691        //output[32] = 0;
    692         ret->value_str32 = output;
     692        ret->val.value_str32 = output;
    693693        ret->type = sl_str32;
    694694        return 0;
     
    766766uint16_t ONICALL cinematic_start_patch(sl_callinfo* callinfo, unsigned int numargs, sl_arg args[], int* dontuse1, int* dontuse2, sl_arg* ret)
    767767{
    768         args[1].value_int32 = (double)args[1].value_int32 / (double)(gl_eng->DisplayMode.Width) * (4.0 / 3.0 * (double)(gl_eng->DisplayMode.Height));
     768        args[1].val.value_int32 = (double)args[1].val.value_int32 / (double)(gl_eng->DisplayMode.Width) * (4.0 / 3.0 * (double)(gl_eng->DisplayMode.Height));
    769769        return ((sl_func)(OniExe + 0x000f3830))(callinfo, numargs, args, dontuse1, dontuse2, ret);
    770770}
Note: See TracChangeset for help on using the changeset viewer.