Merge remote-tracking branch 'origin/master' into asmjit
This commit is contained in:
commit
70f18f87b9
10 changed files with 454 additions and 146 deletions
|
|
@ -634,26 +634,26 @@ static int GetLine (void)
|
|||
// misc1 = vrange (arg +3), misc2 = hrange (arg+4)
|
||||
static int CreateMushroomFunc(VMFunctionBuilder &buildit, int value1, int value2)
|
||||
{ // A_Mushroom
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0); // spawntype
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0); // numspawns
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0); // spawntype
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0); // numspawns
|
||||
buildit.Emit(OP_PARAMI, 1); // flag
|
||||
// vrange
|
||||
if (value1 == 0)
|
||||
{
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0);
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
buildit.Emit(OP_PARAM, 0, REGT_FLOAT | REGT_KONST, buildit.GetConstantFloat(DEHToDouble(value1)));
|
||||
buildit.Emit(OP_PARAM, REGT_FLOAT | REGT_KONST, buildit.GetConstantFloat(DEHToDouble(value1)));
|
||||
}
|
||||
// hrange
|
||||
if (value2 == 0)
|
||||
{
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0);
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
buildit.Emit(OP_PARAM, 0, REGT_FLOAT | REGT_KONST, buildit.GetConstantFloat(DEHToDouble(value2)));
|
||||
buildit.Emit(OP_PARAM, REGT_FLOAT | REGT_KONST, buildit.GetConstantFloat(DEHToDouble(value2)));
|
||||
}
|
||||
return 5;
|
||||
}
|
||||
|
|
@ -669,9 +669,9 @@ static int CreateSpawnFunc(VMFunctionBuilder &buildit, int value1, int value2)
|
|||
int typereg = buildit.GetConstantAddress(InfoNames[value1-1]);
|
||||
int heightreg = buildit.GetConstantFloat(value2);
|
||||
|
||||
buildit.Emit(OP_PARAM, 0, REGT_POINTER | REGT_KONST, typereg); // itemtype
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0); // distance
|
||||
buildit.Emit(OP_PARAM, 0, REGT_FLOAT | REGT_KONST, heightreg); // height
|
||||
buildit.Emit(OP_PARAM, REGT_POINTER | REGT_KONST, typereg); // itemtype
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0); // distance
|
||||
buildit.Emit(OP_PARAM, REGT_FLOAT | REGT_KONST, heightreg); // height
|
||||
// The rest of the parameters to A_SpawnItem can just keep their defaults
|
||||
return 3;
|
||||
}
|
||||
|
|
@ -679,14 +679,14 @@ static int CreateSpawnFunc(VMFunctionBuilder &buildit, int value1, int value2)
|
|||
// misc1 = angle (in degrees) (arg +0 but factor in current actor angle too)
|
||||
static int CreateTurnFunc(VMFunctionBuilder &buildit, int value1, int value2)
|
||||
{ // A_Turn
|
||||
buildit.Emit(OP_PARAM, 0, REGT_FLOAT | REGT_KONST, buildit.GetConstantFloat(value1)); // angle
|
||||
buildit.Emit(OP_PARAM, REGT_FLOAT | REGT_KONST, buildit.GetConstantFloat(value1)); // angle
|
||||
return 1;
|
||||
}
|
||||
|
||||
// misc1 = angle (in degrees) (arg +0)
|
||||
static int CreateFaceFunc(VMFunctionBuilder &buildit, int value1, int value2)
|
||||
{ // A_FaceTarget
|
||||
buildit.Emit(OP_PARAM, 0, REGT_FLOAT | REGT_KONST, buildit.GetConstantFloat(value1)); // angle
|
||||
buildit.Emit(OP_PARAM, REGT_FLOAT | REGT_KONST, buildit.GetConstantFloat(value1)); // angle
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -710,9 +710,9 @@ static int CreatePlaySoundFunc(VMFunctionBuilder &buildit, int value1, int value
|
|||
|
||||
buildit.EmitParamInt(SoundMap[value1-1]); // soundid
|
||||
buildit.Emit(OP_PARAMI, CHAN_BODY); // channel
|
||||
buildit.Emit(OP_PARAM, 0, REGT_FLOAT | REGT_KONST, float1); // volume
|
||||
buildit.Emit(OP_PARAM, REGT_FLOAT | REGT_KONST, float1); // volume
|
||||
buildit.Emit(OP_PARAMI, false); // looping
|
||||
buildit.Emit(OP_PARAM, 0, REGT_FLOAT | REGT_KONST, attenreg); // attenuation
|
||||
buildit.Emit(OP_PARAM, REGT_FLOAT | REGT_KONST, attenreg); // attenuation
|
||||
return 5;
|
||||
}
|
||||
|
||||
|
|
@ -722,7 +722,7 @@ static int CreateRandomJumpFunc(VMFunctionBuilder &buildit, int value1, int valu
|
|||
int statereg = buildit.GetConstantAddress(FindState(value1));
|
||||
|
||||
buildit.EmitParamInt(value2); // maxchance
|
||||
buildit.Emit(OP_PARAM, 0, REGT_POINTER | REGT_KONST, statereg); // jumpto
|
||||
buildit.Emit(OP_PARAM, REGT_POINTER | REGT_KONST, statereg); // jumpto
|
||||
return 2;
|
||||
}
|
||||
|
||||
|
|
@ -744,11 +744,11 @@ static int CreateNailBombFunc(VMFunctionBuilder &buildit, int value1, int value2
|
|||
{ // A_Explode
|
||||
// This one does not actually have MBF-style parameters. But since
|
||||
// we're aliasing it to an extension of A_Explode...
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0); // damage
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0); // distance
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0); // flags
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0); // alert
|
||||
buildit.Emit(OP_PARAM, 0, REGT_NIL, 0); // fulldamagedistance
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0); // damage
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0); // distance
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0); // flags
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0); // alert
|
||||
buildit.Emit(OP_PARAM, REGT_NIL, 0); // fulldamagedistance
|
||||
buildit.Emit(OP_PARAMI, 30); // nails
|
||||
buildit.Emit(OP_PARAMI, 10); // naildamage
|
||||
return 7;
|
||||
|
|
@ -804,7 +804,7 @@ void SetDehParams(FState *state, int codepointer)
|
|||
// Emit code to pass the standard action function parameters.
|
||||
for (int i = 0; i < numargs; i++)
|
||||
{
|
||||
buildit.Emit(OP_PARAM, 0, REGT_POINTER, i);
|
||||
buildit.Emit(OP_PARAM, REGT_POINTER, i);
|
||||
}
|
||||
// Emit code for action parameters.
|
||||
int argcount = MBFCodePointerFactories[codepointer](buildit, value1, value2);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue