static void cheat_remove_litter() { rct_litter* litter; uint16 spriteIndex, nextSpriteIndex; for (spriteIndex = RCT2_GLOBAL(RCT2_ADDRESS_SPRITES_START_LITTER, uint16); spriteIndex != SPRITE_INDEX_NULL; spriteIndex = nextSpriteIndex) { litter = &(g_sprite_list[spriteIndex].litter); nextSpriteIndex = litter->next; sprite_remove((rct_sprite*)litter); } map_element_iterator it; rct_scenery_entry *sceneryEntry; map_element_iterator_begin(&it); do { if (map_element_get_type(it.element) != MAP_ELEMENT_TYPE_PATH) continue; if (!footpath_element_has_path_scenery(it.element)) continue; sceneryEntry = g_pathBitSceneryEntries[footpath_element_get_path_scenery_index(it.element)]; if(sceneryEntry->path_bit.var_06 & (1 << 0)) it.element->properties.path.addition_status = 0xFF; } while (map_element_iterator_next(&it)); gfx_invalidate_screen(); }
static void cheat_remove_litter() { rct_litter* litter; uint16 spriteIndex, nextSpriteIndex; for (spriteIndex = gSpriteListHead[SPRITE_LIST_LITTER]; spriteIndex != SPRITE_INDEX_NULL; spriteIndex = nextSpriteIndex) { litter = &(get_sprite(spriteIndex)->litter); nextSpriteIndex = litter->next; sprite_remove((rct_sprite*)litter); } tile_element_iterator it; rct_scenery_entry *sceneryEntry; tile_element_iterator_begin(&it); do { if (tile_element_get_type(it.element) != TILE_ELEMENT_TYPE_PATH) continue; if (!footpath_element_has_path_scenery(it.element)) continue; sceneryEntry = get_footpath_item_entry(footpath_element_get_path_scenery_index(it.element)); if (sceneryEntry->path_bit.flags & PATH_BIT_FLAG_IS_BIN) it.element->properties.path.addition_status = 0xFF; } while (tile_element_iterator_next(&it)); gfx_invalidate_screen(); }
/** * * rct: 0x006733CB (water) * rct: 0x00673407 (snow) */ void jumping_fountain_update(rct_jumping_fountain *jumpingFountain) { int original_var_26a = jumpingFountain->var_26a; jumpingFountain->var_26a += 160; if (original_var_26a <= 255 - 160) return; invalidate_sprite_0((rct_sprite*)jumpingFountain); jumpingFountain->var_26b++; switch (jumpingFountain->misc_identifier) { case SPRITE_MISC_JUMPING_FOUNTAIN_WATER: if (jumpingFountain->var_26b == 11 && (jumpingFountain->flags & FOUNTAIN_FLAG_FAST)) jumping_fountain_continue(jumpingFountain); if (jumpingFountain->var_26b == 16 && !(jumpingFountain->flags & FOUNTAIN_FLAG_FAST)) jumping_fountain_continue(jumpingFountain); break; case SPRITE_MISC_JUMPING_FOUNTAIN_SNOW: if (jumpingFountain->var_26b == 16) jumping_fountain_continue(jumpingFountain); break; } if (jumpingFountain->var_26b == 16) sprite_remove((rct_sprite*)jumpingFountain); }
/** * * rct: 0x00673232 */ void money_effect_update(rct_money_effect *moneyEffect) { invalidate_sprite_2((rct_sprite*)moneyEffect); moneyEffect->wiggle++; if (moneyEffect->wiggle >= 22) moneyEffect->wiggle = 0; moneyEffect->move_delay++; if (moneyEffect->move_delay < 2) return; moneyEffect->move_delay = 0; int x = moneyEffect->x + _moneyEffectMoveOffset[get_current_rotation()].x; int y = moneyEffect->y + _moneyEffectMoveOffset[get_current_rotation()].y; int z = moneyEffect->z; sprite_move(x, y, z, (rct_sprite*)moneyEffect); moneyEffect->num_movements++; if (moneyEffect->num_movements < 55) return; sprite_remove((rct_sprite*)moneyEffect); }