int update_HETR(UPDATE_FUNC_ARGS) {
    int xr, yr, r;
    for (yr=-1;yr<2;yr++){
        for (xr=-1;xr<2;xr++){
            r=pmap[y+yr][x+xr];
            if (r){
                parts[r>>8].temp=9999.0f;
            }
        }
    }
    return 0;
}
int update_COLR(UPDATE_FUNC_ARGS) {
    int xr, yr, r;
    for (yr=-1;yr<2;yr++){
        for (xr=-1;xr<2;xr++){
            r=pmap[y+yr][x+xr];
            if (r){
                parts[r>>8].temp=0.0f;
            }
        }
    }
    return 0;
}
int update_HETR(UPDATE_FUNC_ARGS) {
    int xr, yr, r;
    for (yr=-1;yr<2;yr++){
        for (xr=-1;xr<2;xr++){
            r=pmap[y+yr][x+xr];
            if (r){
                parts[r>>8].temp=parts[i].temp;
            }
        }
    }
    return 0;
}Fast-Driver: