int main(int argc, char* argv[]) { if (argc < 8) { printf("Usage:\n"); printf("\t%s <splash.png> <x placement in %%> <y placement in %%> " "<icons.png> <x placement in %%> <y placement in %%> <images.h>\n", argv[0]); return 0; } int logoPlacementX = atoi(argv[2]); int logoPlacementY = atoi(argv[3]); int iconPlacementX = atoi(argv[5]); int iconPlacementY = atoi(argv[6]); if (logoPlacementX < 0 || logoPlacementX > 100) { printf("Bad X placement for logo: %d%%\n", logoPlacementX); return 1; } if (logoPlacementY < 0 || logoPlacementY > 100) { printf("Bad Y placement for logo: %d%%\n\n", logoPlacementY); return 1; } if (iconPlacementX < 0 || iconPlacementX > 100) { printf("Bad X placement for icons: %d%%\n", iconPlacementX); return 1; } if (iconPlacementY < 0 || iconPlacementY > 100) { printf("Bad Y placement for icons: %d%%\n", iconPlacementY); return 1; } const char* headerFileName = argv[7]; sOutput = fopen(headerFileName, "wb"); if (!sOutput) error("Could not open file \"%s\" for writing", headerFileName); fputs("// This file was generated by the generate_boot_screen Haiku build " "tool.\n\n", sOutput); fprintf(sOutput, "static const int32 kSplashLogoPlacementX = %d;\n", logoPlacementX); fprintf(sOutput, "static const int32 kSplashLogoPlacementY = %d;\n", logoPlacementY); fprintf(sOutput, "static const int32 kSplashIconsPlacementX = %d;\n", iconPlacementX); fprintf(sOutput, "static const int32 kSplashIconsPlacementY = %d;\n\n", iconPlacementY); parse_images(argv[1], "kSplashLogo", argv[4], "kSplashIcons"); fclose(sOutput); return 0; }
void Tile::parse(const lisp::Lisp& reader) { if(!reader.get("id", id)) { throw std::runtime_error("Missing tile-id."); } bool value = false; if(reader.get("solid", value) && value) attributes |= SOLID; if(reader.get("unisolid", value) && value) attributes |= UNISOLID | SOLID; if(reader.get("brick", value) && value) attributes |= BRICK; if(reader.get("ice", value) && value) attributes |= ICE; if(reader.get("water", value) && value) attributes |= WATER; if(reader.get("hurts", value) && value) attributes |= HURTS; if(reader.get("fullbox", value) && value) attributes |= FULLBOX; if(reader.get("coin", value) && value) attributes |= COIN; if(reader.get("goal", value) && value) attributes |= GOAL; if(reader.get("north", value) && value) data |= WORLDMAP_NORTH; if(reader.get("south", value) && value) data |= WORLDMAP_SOUTH; if(reader.get("west", value) && value) data |= WORLDMAP_WEST; if(reader.get("east", value) && value) data |= WORLDMAP_EAST; if(reader.get("stop", value) && value) data |= WORLDMAP_STOP; reader.get("data", data); reader.get("anim-fps", anim_fps); if(reader.get("slope-type", data)) { attributes |= SOLID | SLOPE; } const lisp::Lisp* images = reader.get_lisp("images"); if(images) parse_images(*images); }