function(sprite) set(options "") set(multiValueArgs "") set(oneValueArgs NAME X Y TRANSPARENT BPP CX CY) cmake_parse_arguments(SPRITE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(PS1_BUILD) if(${SPRITE_TRANSPARENT}) set(trans -mpink) endif() if(NOT "${SPRITE_BPP}" STREQUAL "16") set(clut "-clut=${SPRITE_CX},${SPRITE_CY}") endif() add_custom_target(${SPRITE_NAME}_img ALL bmp2tim ${SPRITE_NAME}.bmp ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME} ${SPRITE_BPP} -org=${SPRITE_X},${SPRITE_Y} ${clut} ${trans} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${SPRITE_NAME}.bmp BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME}) add_dependencies(iso ${SPRITE_NAME}_img) elseif(SDL1_2_BUILD) add_custom_target(${SPRITE_NAME}_img ALL cp ${SPRITE_NAME}.bmp ${CMAKE_CURRENT_BINARY_DIR}/${SPRITE_NAME} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${SPRITE_NAME}.bmp BYPRODUCTS ${SPRITE_NAME}) add_dependencies(${PROJECT_NAME} ${SPRITE_NAME}_img) endif() endfunction() function(sound) set(options "") set(multiValueArgs "") set(oneValueArgs NAME LOOP) cmake_parse_arguments(SOUND "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(PS1_BUILD) if(${SOUND_LOOP}) set(loop -L) endif() add_custom_target(${SOUND_NAME}_snd ALL wav2vag ${SOUND_NAME}.wav ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME} ${loop} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${SOUND_NAME}.wav BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME}) add_dependencies(iso ${SOUND_NAME}_snd) elseif(SDL1_2_BUILD) add_custom_target(${SOUND_NAME}_snd ALL #ffmpeg -y -i ${SOUND_NAME}.wav # -loglevel error # -c:a libvorbis # ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME} cp ${SOUND_NAME}.wav ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DEPENDS ${SOUND_NAME}.wav BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/${SOUND_NAME}) add_dependencies(${PROJECT_NAME} ${SOUND_NAME}_snd) endif() endfunction() function(container) set(options "") set(multiValueArgs SPRITES SOUNDS) set(oneValueArgs NAME) cmake_parse_arguments(CONTAINER "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) add_custom_target(${CONTAINER_NAME}_container ALL container ${CONTAINER_SPRITES} ${CONTAINER_SOUNDS} ${cdroot}/${CONTAINER_NAME}.cnt WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} BYPRODUCTS ${cdroot}/${CONTAINER_NAME}.cnt) foreach(sprite ${CONTAINER_SPRITES}) add_dependencies(${CONTAINER_NAME}_container ${sprite}_img) endforeach() foreach(sound ${CONTAINER_SOUNDS}) add_dependencies(${CONTAINER_NAME}_container ${sound}_snd) endforeach() if(PS1_BUILD) add_dependencies(iso ${CONTAINER_NAME}_container) endif() endfunction() sprite(NAME worker_n X 384 Y 0 BPP 4 CX 384 CY 31 TRANSPARENT TRUE) sprite(NAME worker_ne X 384 Y 32 BPP 4 CX 384 CY 63 TRANSPARENT TRUE) sprite(NAME worker_e X 384 Y 64 BPP 4 CX 384 CY 97 TRANSPARENT TRUE) sprite(NAME worker_se X 384 Y 98 BPP 4 CX 384 CY 129 TRANSPARENT TRUE) sprite(NAME worker_s X 384 Y 130 BPP 4 CX 384 CY 163 TRANSPARENT TRUE) sprite(NAME grass X 368 Y 0 BPP 4 CX 368 CY 510 TRANSPARENT FALSE) sprite(NAME cursor X 368 Y 32 BPP 4 CX 368 CY 509 TRANSPARENT TRUE) sprite(NAME barracks X 384 Y 180 BPP 4 CX 368 CY 508 TRANSPARENT TRUE) sprite(NAME gui_bar_left X 376 Y 0 BPP 4 CX 368 CY 507 TRANSPARENT TRUE) sprite(NAME gui_bar_mid X 472 Y 168 BPP 4 CX 368 CY 506 TRANSPARENT TRUE) sprite(NAME gui_bar_right X 376 Y 56 BPP 4 CX 368 CY 505 TRANSPARENT TRUE) sprite(NAME sel_up_left X 368 Y 64 BPP 4 CX 368 CY 504 TRANSPARENT TRUE) sprite(NAME sel_up_right X 372 Y 64 BPP 4 CX 368 CY 503 TRANSPARENT TRUE) sprite(NAME sel_down_left X 368 Y 52 BPP 4 CX 368 CY 502 TRANSPARENT TRUE) sprite(NAME sel_down_right X 372 Y 52 BPP 4 CX 368 CY 501 TRANSPARENT TRUE) sprite(NAME sel_mid X 376 Y 52 BPP 4 CX 368 CY 500 TRANSPARENT TRUE) sprite(NAME sel_mid_v X 382 Y 0 BPP 4 CX 368 CY 499 TRANSPARENT TRUE) sprite(NAME font X 472 Y 0 BPP 4 CX 368 CY 498 TRANSPARENT TRUE) sprite(NAME gold_mine X 448 Y 0 BPP 4 CX 368 CY 497 TRANSPARENT TRUE) sprite(NAME tree X 368 Y 76 BPP 4 CX 368 CY 496 TRANSPARENT TRUE) sound(NAME acknowledge_01) sound(NAME acknowledge_02) sound(NAME selected_01) container(NAME rts SPRITES barracks worker_n worker_ne worker_e worker_se worker_s font grass cursor tree gui_bar_left gui_bar_mid gui_bar_right gold_mine sel_up_left sel_up_right sel_down_left sel_down_right sel_mid sel_mid_v SOUNDS acknowledge_01 acknowledge_02 selected_01 )