Date: Tue, 26 Sep 2000 01:21:26 -0700 (PDT) From: karlj000@unbc.ca To: FreeBSD-gnats-submit@freebsd.org Subject: ports/21557: New port: MagicCube4D - four-dimensional analog of Rubik's cube Message-ID: <200009260821.BAA11552@cr151612-b.crdva1.bc.wave.home.com>
next in thread | raw e-mail | index | archive | help
>Number: 21557 >Category: ports >Synopsis: New port: MagicCube4D - four-dimensional analog of Rubik's cube >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Sep 26 01:30:00 PDT 2000 >Closed-Date: >Last-Modified: >Originator: Jeremy Karlson >Release: FreeBSD 4.1-RELEASE i386 >Organization: None >Environment: uname -a: FreeBSD lucretia.twobits.org 4.1-RELEASE FreeBSD 4.1-RELEASE #1: Mon Sep 18 02:39:06 PDT 2000 root@lucretia.twobits.org:/usr/src/sys/compile/LUCRETIA i386 >Description: New port, a game. MagicCube4d is a Rubik's cubish puzzle. Consult DESCR file in the shar for more information. >How-To-Repeat: N/A. >Fix: Shar follows: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # /usr/ports/games/magiccube4d # /usr/ports/games/magiccube4d/pkg # /usr/ports/games/magiccube4d/pkg/COMMENT # /usr/ports/games/magiccube4d/pkg/DESCR # /usr/ports/games/magiccube4d/pkg/PLIST # /usr/ports/games/magiccube4d/Makefile # /usr/ports/games/magiccube4d/patches # /usr/ports/games/magiccube4d/patches/patch-ab # /usr/ports/games/magiccube4d/patches/patch-aa # /usr/ports/games/magiccube4d/files # /usr/ports/games/magiccube4d/files/md5 # echo c - /usr/ports/games/magiccube4d mkdir -p /usr/ports/games/magiccube4d > /dev/null 2>&1 echo c - /usr/ports/games/magiccube4d/pkg mkdir -p /usr/ports/games/magiccube4d/pkg > /dev/null 2>&1 echo x - /usr/ports/games/magiccube4d/pkg/COMMENT sed 's/^X//' >/usr/ports/games/magiccube4d/pkg/COMMENT << 'END-of-/usr/ports/games/magiccube4d/pkg/COMMENT' XMagicCube4D is a fully functional four-dimensional analog of Rubik's cube END-of-/usr/ports/games/magiccube4d/pkg/COMMENT echo x - /usr/ports/games/magiccube4d/pkg/DESCR sed 's/^X//' >/usr/ports/games/magiccube4d/pkg/DESCR << 'END-of-/usr/ports/games/magiccube4d/pkg/DESCR' XMagicCube4D is a four-dimensional Rubik's cube. It is an exact analogy in Xfour dimensions to the original plastic three dimensional puzzle, but Xwith some useful features - such as a "reset" button - which the original Xpuzzle lacked. X XWWW: http://www.superliminal.com/cube/cube.htm X X- Jeremy Xkarlj000@unbc.ca END-of-/usr/ports/games/magiccube4d/pkg/DESCR echo x - /usr/ports/games/magiccube4d/pkg/PLIST sed 's/^X//' >/usr/ports/games/magiccube4d/pkg/PLIST << 'END-of-/usr/ports/games/magiccube4d/pkg/PLIST' Xbin/magiccube4d Xshare/doc/magiccube4d/ChangeLog Xshare/doc/magiccube4d/Intro.txt Xshare/doc/magiccube4d/MagicCube4D-unix.txt Xshare/doc/magiccube4d/ideas.txt Xshare/doc/magiccube4d/readme-unix.txt X@dirrm share/doc/magiccube4d END-of-/usr/ports/games/magiccube4d/pkg/PLIST echo x - /usr/ports/games/magiccube4d/Makefile sed 's/^X//' >/usr/ports/games/magiccube4d/Makefile << 'END-of-/usr/ports/games/magiccube4d/Makefile' X# New ports collection makefile for: Magic Cube 4D X# Date Created: September 25, 2000 X# Whom: Jeremy <karlj000@unbc.ca> X# X# $FreeBSD$ X# X XPORTNAME= magiccube4d XPORTVERSION= 2.1 XCATEGORIES= games XMASTER_SITES= http://www.superliminal.com/cube/ XDISTNAME= magiccube4d-src-2_1 XEXTRACT_SUFX= .tgz X XMAINTAINER= karlj000@unbc.ca X XUSE_XLIB= yes XUSE_X_PREFIX= yes X XGNU_CONFIGURE= yes XUSE_GMAKE= yes X Xdo-install: X ${INSTALL_PROGRAM} ${WRKSRC}/magiccube4d ${PREFIX}/bin X ${MKDIR} ${PREFIX}/share/doc/magiccube4d X ${INSTALL_DATA} ${WRKSRC}/ChangeLog ${PREFIX}/share/doc/magiccube4d X ${INSTALL_DATA} ${WRKSRC}/Intro.txt ${PREFIX}/share/doc/magiccube4d X ${INSTALL_DATA} ${WRKSRC}/MagicCube4D-unix.txt ${PREFIX}/share/doc/magiccube4d X ${INSTALL_DATA} ${WRKSRC}/ideas.txt ${PREFIX}/share/doc/magiccube4d X ${INSTALL_DATA} ${WRKSRC}/readme-unix.txt ${PREFIX}/share/doc/magiccube4d X X.include <bsd.port.mk> END-of-/usr/ports/games/magiccube4d/Makefile echo c - /usr/ports/games/magiccube4d/patches mkdir -p /usr/ports/games/magiccube4d/patches > /dev/null 2>&1 echo x - /usr/ports/games/magiccube4d/patches/patch-ab sed 's/^X//' >/usr/ports/games/magiccube4d/patches/patch-ab << 'END-of-/usr/ports/games/magiccube4d/patches/patch-ab' X*** EventHandler.cpp.BACKUP Mon Sep 25 19:46:01 2000 X--- EventHandler.cpp Mon Sep 25 19:52:32 2000 X*************** X*** 77,127 **** X ("(Shift or control)-middle and dragging changes the viewing perspective.\n"); X printf("Type 'h' for a list of key commands.\n"); X X! widgets->addButton(Widgets::ButtonData("Undo", &undo_cb, (void*)0)); X! widgets->addButton(Widgets::ButtonData("Redo", &redo_cb, (void*)0)); X static Widgets::ButtonData twist_items[] = { X! Widgets::ButtonData(" 1 twist", &scramble_cb, (void *)1), X! Widgets::ButtonData(" 2 twists", &scramble_cb, (void *)2), X! Widgets::ButtonData(" 3 twists", &scramble_cb, (void *)3), X! Widgets::ButtonData(" 4 twists", &scramble_cb, (void *)4), X! Widgets::ButtonData(" 5 twists", &scramble_cb, (void *)5), X! Widgets::ButtonData(" 6 twists", &scramble_cb, (void *)6), X! Widgets::ButtonData(" 7 twists", &scramble_cb, (void *)7), X! Widgets::ButtonData(" 8 twists", &scramble_cb, (void *)8), X! Widgets::ButtonData("Full Scramble", &scramble_cb, (void *)NSCRAMBLECHEN), X }; X int n_items = sizeof(twist_items) / sizeof(twist_items[0]); X assert(n_items == 9); X widgets->addMenuButton("Scramble...", n_items, twist_items); X! widgets->addButton(Widgets::ButtonData("Solve", &cheat_cb, 0)); X! widgets->addButton(Widgets::ButtonData("Reset", &reset_cb, 0)); X static Widgets::ButtonData new_puzzle_items[] = { X // widgets_button_create_data( X // MAXLENGTH<1 ? NULL : "1x1x1x1", new_puzzle_cb, (void *)1, X Widgets::ButtonData(MAXLENGTH < 2 ? 0 : X! Widgets::ButtonData("2x2x2x2", &newPuzzle_cb, X (void *)2)), X Widgets::ButtonData(MAXLENGTH < 3 ? 0 : X! Widgets::ButtonData("3x3x3x3", &newPuzzle_cb, X (void *)3)), X Widgets::ButtonData(MAXLENGTH < 4 ? 0 : X! Widgets::ButtonData("4x4x4x4", &newPuzzle_cb, X (void *)4)), X Widgets::ButtonData(MAXLENGTH < 5 ? 0 : X! Widgets::ButtonData("5x5x5x5", &newPuzzle_cb, X (void *)5)), X Widgets::ButtonData(MAXLENGTH < 6 ? 0 : X! Widgets::ButtonData("6x6x6x6", &newPuzzle_cb, X (void *)6)), X Widgets::ButtonData(MAXLENGTH < 7 ? 0 : X! Widgets::ButtonData("7x7x7x7", &newPuzzle_cb, X (void *)7)), X }; X n_items = sizeof(new_puzzle_items) / sizeof(new_puzzle_items[0]); X widgets->addMenuButton("New Puzzle...", n_items, new_puzzle_items); X! widgets->addButton(Widgets::ButtonData("Save", &save_cb, 0)); X! widgets->addButton(Widgets::ButtonData("Print", &print_cb, 0)); X! widgets->addButton(Widgets::ButtonData("Quit", &quit_cb, 0)); X X readLogfile(this->preferences.getStringProperty(M4D_LOGFILE)); X X--- 77,127 ---- X ("(Shift or control)-middle and dragging changes the viewing perspective.\n"); X printf("Type 'h' for a list of key commands.\n"); X X! widgets->addButton(Widgets::ButtonData("Undo", &EventHandler::undo_cb, (void*)0)); X! widgets->addButton(Widgets::ButtonData("Redo", &EventHandler::redo_cb, (void*)0)); X static Widgets::ButtonData twist_items[] = { X! Widgets::ButtonData(" 1 twist", &EventHandler::scramble_cb, (void *)1), X! Widgets::ButtonData(" 2 twists", &EventHandler::scramble_cb, (void *)2), X! Widgets::ButtonData(" 3 twists", &EventHandler::scramble_cb, (void *)3), X! Widgets::ButtonData(" 4 twists", &EventHandler::scramble_cb, (void *)4), X! Widgets::ButtonData(" 5 twists", &EventHandler::scramble_cb, (void *)5), X! Widgets::ButtonData(" 6 twists", &EventHandler::scramble_cb, (void *)6), X! Widgets::ButtonData(" 7 twists", &EventHandler::scramble_cb, (void *)7), X! Widgets::ButtonData(" 8 twists", &EventHandler::scramble_cb, (void *)8), X! Widgets::ButtonData("Full Scramble", &EventHandler::scramble_cb, (void *)NSCRAMBLECHEN), X }; X int n_items = sizeof(twist_items) / sizeof(twist_items[0]); X assert(n_items == 9); X widgets->addMenuButton("Scramble...", n_items, twist_items); X! widgets->addButton(Widgets::ButtonData("Solve", &EventHandler::cheat_cb, 0)); X! widgets->addButton(Widgets::ButtonData("Reset", &EventHandler::reset_cb, 0)); X static Widgets::ButtonData new_puzzle_items[] = { X // widgets_button_create_data( X // MAXLENGTH<1 ? NULL : "1x1x1x1", new_puzzle_cb, (void *)1, X Widgets::ButtonData(MAXLENGTH < 2 ? 0 : X! Widgets::ButtonData("2x2x2x2", &EventHandler::newPuzzle_cb, X (void *)2)), X Widgets::ButtonData(MAXLENGTH < 3 ? 0 : X! Widgets::ButtonData("3x3x3x3", &EventHandler::newPuzzle_cb, X (void *)3)), X Widgets::ButtonData(MAXLENGTH < 4 ? 0 : X! Widgets::ButtonData("4x4x4x4", &EventHandler::newPuzzle_cb, X (void *)4)), X Widgets::ButtonData(MAXLENGTH < 5 ? 0 : X! Widgets::ButtonData("5x5x5x5", &EventHandler::newPuzzle_cb, X (void *)5)), X Widgets::ButtonData(MAXLENGTH < 6 ? 0 : X! Widgets::ButtonData("6x6x6x6", &EventHandler::newPuzzle_cb, X (void *)6)), X Widgets::ButtonData(MAXLENGTH < 7 ? 0 : X! Widgets::ButtonData("7x7x7x7", &EventHandler::newPuzzle_cb, X (void *)7)), X }; X n_items = sizeof(new_puzzle_items) / sizeof(new_puzzle_items[0]); X widgets->addMenuButton("New Puzzle...", n_items, new_puzzle_items); X! widgets->addButton(Widgets::ButtonData("Save", &EventHandler::save_cb, 0)); X! widgets->addButton(Widgets::ButtonData("Print", &EventHandler::print_cb, 0)); X! widgets->addButton(Widgets::ButtonData("Quit", &EventHandler::quit_cb, 0)); X X readLogfile(this->preferences.getStringProperty(M4D_LOGFILE)); X X*************** X*** 132,143 **** X polymgr->getUntwistedFrame(&untwisted_frame); X X /* an expose event will happen immediately */ X! machine->addEventHandler(1 << EXPOSE, &expose_handler, 0); X! machine->addEventHandler(1 << RESIZE, &expose_handler, 0); X! machine->addEventHandler(1 << BUTTONDOWN, &buttonDown_handler, 0); X! machine->addEventHandler(1 << KEYPRESS, &keyPress_handler, 0); X! machine->addEventHandler(1 << KEYRELEASE, &keyRelease_handler, 0); X! machine->addEventHandler(1 << DRAG, &drag_handler, 0); X } X X EventHandler::Callback* X--- 132,143 ---- X polymgr->getUntwistedFrame(&untwisted_frame); X X /* an expose event will happen immediately */ X! machine->addEventHandler(1 << EXPOSE, &EventHandler::expose_handler, 0); X! machine->addEventHandler(1 << RESIZE, &EventHandler::expose_handler, 0); X! machine->addEventHandler(1 << BUTTONDOWN, &EventHandler::buttonDown_handler, 0); X! machine->addEventHandler(1 << KEYPRESS, &EventHandler::keyPress_handler, 0); X! machine->addEventHandler(1 << KEYRELEASE, &EventHandler::keyRelease_handler, 0); X! machine->addEventHandler(1 << DRAG, &EventHandler::drag_handler, 0); X } X X EventHandler::Callback* X*************** X*** 689,700 **** X return; X } X X! static Widgets::ButtonData button("Cancel", &cancelApplyMacro_cb, 0); X widgets->createDialog("Click on three reference stickers.\n", 1, &button); X X number_of_reference_stickers_needed = 3; X reference_stickers_needed = refs; X! what_to_do_after_got_reference_stickers = &applyMacroCBAfterGotRefStickers; X } X X void X--- 689,700 ---- X return; X } X X! static Widgets::ButtonData button("Cancel", &EventHandler::cancelApplyMacro_cb, 0); X widgets->createDialog("Click on three reference stickers.\n", 1, &button); X X number_of_reference_stickers_needed = 3; X reference_stickers_needed = refs; X! what_to_do_after_got_reference_stickers = &EventHandler::applyMacroCBAfterGotRefStickers; X } X X void X*************** X*** 745,756 **** X X widgets->addMacro("", macromgr->getNMacros() - 1); X X! static Widgets::ButtonData button("Cancel", &cancelAdd_cb, 0); X widgets->createDialog("Click on three\nreference stickers.\n", 1, &button); X X number_of_reference_stickers_needed = 3; X reference_stickers_needed = refs; X! what_to_do_after_got_reference_stickers = &addCBAfterGotRefStickers; X } X X void X--- 745,756 ---- X X widgets->addMacro("", macromgr->getNMacros() - 1); X X! static Widgets::ButtonData button("Cancel", &EventHandler::cancelAdd_cb, 0); X widgets->createDialog("Click on three\nreference stickers.\n", 1, &button); X X number_of_reference_stickers_needed = 3; X reference_stickers_needed = refs; X! what_to_do_after_got_reference_stickers = &EventHandler::addCBAfterGotRefStickers; X } X X void X*************** X*** 758,765 **** X { X widgets->destroyDialog(); X static Widgets::ButtonData make_macro[2] = { X! Widgets::ButtonData("Done", &doneAdd_cb, 0), X! Widgets::ButtonData("Cancel", &cancelAdd_cb, 0), X }; X X // FIX THIS-- it obscures the window! X--- 758,765 ---- X { X widgets->destroyDialog(); X static Widgets::ButtonData make_macro[2] = { X! Widgets::ButtonData("Done", &EventHandler::doneAdd_cb, 0), X! Widgets::ButtonData("Cancel", &EventHandler::cancelAdd_cb, 0), X }; X X // FIX THIS-- it obscures the window! X*************** X*** 806,812 **** X return; X } X X! static Widgets::ButtonData button("Cancel", &cancelDelete_cb, 0); X widgets->createDialog X ("Click on the \"Apply\" button\nof the macro you wish to delete.", 1, X &button); X--- 806,812 ---- X return; X } X X! static Widgets::ButtonData button("Cancel", &EventHandler::cancelDelete_cb, 0); X widgets->createDialog X ("Click on the \"Apply\" button\nof the macro you wish to delete.", 1, X &button); END-of-/usr/ports/games/magiccube4d/patches/patch-ab echo x - /usr/ports/games/magiccube4d/patches/patch-aa sed 's/^X//' >/usr/ports/games/magiccube4d/patches/patch-aa << 'END-of-/usr/ports/games/magiccube4d/patches/patch-aa' X*** MagicCube.h.BACKUP Mon Sep 25 19:46:07 2000 X--- MagicCube.h Mon Sep 25 19:46:39 2000 X*************** X*** 22,28 **** X #include <assert.h> X #include <math.h> X #include <string.h> X! #include <malloc.h> X #include "Vec.h" X X // Version number of this program. Must also be updated in X--- 22,28 ---- X #include <assert.h> X #include <math.h> X #include <string.h> X! #include <stdlib.h> X #include "Vec.h" X X // Version number of this program. Must also be updated in END-of-/usr/ports/games/magiccube4d/patches/patch-aa echo c - /usr/ports/games/magiccube4d/files mkdir -p /usr/ports/games/magiccube4d/files > /dev/null 2>&1 echo x - /usr/ports/games/magiccube4d/files/md5 sed 's/^X//' >/usr/ports/games/magiccube4d/files/md5 << 'END-of-/usr/ports/games/magiccube4d/files/md5' XMD5 (magiccube4d-src-2_1.tgz) = b718f635df7644e20126f2ba3c11701a XMD5 (EventHandler.diff) = 21919eb1b3f86f28acde28dec896d795 XMD5 (MagicCube.diff) = 9fc512703f903ad3d5512f74524b7de9 END-of-/usr/ports/games/magiccube4d/files/md5 >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200009260821.BAA11552>