Implemented the SCI2.1 kMulDiv kernel function. Walking in Torin's Passage is done correctly now, without leaving trails
svn-id: r49909
This commit is contained in:
parent
9b6f71d7cf
commit
20d8de27ba
3 changed files with 10 additions and 0 deletions
|
@ -387,6 +387,7 @@ SciKernelFunction kfunct_mappers[] = {
|
|||
{ "List", kList, ".*" },
|
||||
{ "Robot", kRobot, ".*" },
|
||||
{ "IsOnMe", kIsOnMe, "iio.*" },
|
||||
{ "MulDiv", kMulDiv, "iii" },
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
@ -413,6 +413,7 @@ reg_t kIsHiRes(EngineState *s, int argc, reg_t *argv);
|
|||
reg_t kArray(EngineState *s, int argc, reg_t *argv);
|
||||
reg_t kListAt(EngineState *s, int argc, reg_t *argv);
|
||||
reg_t kString(EngineState *s, int argc, reg_t *argv);
|
||||
reg_t kMulDiv(EngineState *s, int argc, reg_t *argv);
|
||||
// "Screen items" in SCI32 are views
|
||||
reg_t kAddScreenItem(EngineState *s, int argc, reg_t *argv);
|
||||
reg_t kUpdateScreenItem(EngineState *s, int argc, reg_t *argv);
|
||||
|
|
|
@ -879,6 +879,14 @@ reg_t kCreateTextBitmap(EngineState *s, int argc, reg_t *argv) {
|
|||
return NULL_REG;
|
||||
}
|
||||
|
||||
reg_t kMulDiv(EngineState *s, int argc, reg_t *argv) {
|
||||
int16 multiplicant = argv[0].toSint16();
|
||||
int16 multiplier = argv[1].toSint16();
|
||||
int16 denominator = argv[2].toSint16();
|
||||
|
||||
return make_reg(0, multiplicant * multiplier / denominator);
|
||||
}
|
||||
|
||||
} // End of namespace Sci
|
||||
|
||||
#endif // ENABLE_SCI32
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue