Skip site navigation (1)Skip section navigation (2)
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>