{ 0x52C42, STOP_AT_PATCH_RENDER }, /* patch away planet check (behind observer) */
{ 0x528C4, STOP_AT_PATCH_RENDER }, /* patch away planet check (behind observer) */
{ 0x45806, STOP_AT_PATCH_RENDER }, /* patch away planet rendering (would crash without check above) */
+ { 0x53276, STOP_AT_PATCH_RENDER }, /* patch away beacon check (not visible on screen) */
{ 0x0, STOP_AT_END }, /* end */
};
case 0x45806: /* just RTS to avoid crashing of rendering functions when planets are behind obersver */
REG_PC -= 2;
break;
+ case 0x53276: /* skip that branch, so beacons get rendered outside screen */
+ REG_PC += 2;
+ break;
+ case 0x53284: /* skip point render, because projected coordinates may be invalid outside screen */
+ REG_PC += 4;
+ break;
}
}
{ 0x53A6C, STOP_AT_PATCH_RENDER }, /* patch away planet check (behind observer) */
{ 0x537B0, STOP_AT_PATCH_RENDER }, /* patch away planet check (behind observer) */
{ 0x45806, STOP_AT_PATCH_RENDER }, /* patch away planet rendering (would crash without check above) */
+ { 0x5406E, STOP_AT_PATCH_RENDER }, /* patch away beacon check (not visible on screen) */
{ 0x0, STOP_AT_END }, /* end */
};
case 0x45806: /* just RTS to avoid crashing of rendering functions when planets are behind obersver */
REG_PC -= 2;
break;
+ case 0x5406E: /* skip that branch, so beacons get rendered outside screen */
+ REG_PC += 2;
+ break;
+ case 0x54088: /* skip point render, because projected coordinates may be invalid outside screen */
+ REG_PC += 4;
+ break;
}
}
break;
case STOP_AT_POINT_BEACON:
point_beacon();
+ /* note: we may not call the point-renderer, because projected coordinates are invalid */
+ mercenary_patch_render();
break;
case STOP_AT_COORD_BUILDING_EXTERIOR:
coord_building_exterior();