Well, on the Arduino, an "int" is a 16 bit signed, as is an unqualified "short", so "signed short int" is somewhat redundant.
You could try:
byte var1, var2;
int var3;
var1 = 0xab;
var2 = 0xcd;
var3 = ((int)var1 << 8) | (0xff & (int)var2) ;
Have you printed the values back from the Roomba?