Charles.Forsyth20060303a828770d19 years agoHistory
114 lines · 3.4 KB · Objective-C
RawDownload
Cardlib: module {	PATH:		con "/dis/spree/lib/cardlib.dis"; 	Layout: adt {		lay:			ref Spree->Object;		# the actual layout object	}; 	Stackspec: adt {		style:	string;		maxcards:	int;		conceal:	int;		title:		string;	}; 	Card: adt {		suit:		int;		number:	int;		face:		int;	}; 	# a member currently playing	Cmember: adt {		ord:		int;		id:		int;		p:		ref Spree->Member;		obj:		ref Spree->Object;		layout:	ref Layout;		sel:		ref Selection; 		join:		fn(p: ref Spree->Member, ord: int): ref Cmember;		index:	fn(ord: int): ref Cmember;		find:		fn(p: ref Spree->Member): ref Cmember;		findid:	fn(id: int): ref Cmember;		leave:	fn(cp: self ref Cmember);		next:		fn(cp: self ref Cmember, fwd: int): ref Cmember;		prev:		fn(cp: self ref Cmember, fwd: int): ref Cmember;	}; 	Selection: adt {		stack:	ref Spree->Object;		ownerid:	int;		isrange:	int;		r:		Range;		idxl:		list of int; 		set:		fn(sel: self ref Selection, stack: ref Spree->Object);		setexcl:	fn(sel: self ref Selection, stack: ref Spree->Object): int;		setrange:	fn(sel: self ref Selection, r: Range);		addindex:	fn(sel: self ref Selection, i: int);		delindex:	fn(sel: self ref Selection, i: int);		isempty:	fn(sel: self ref Selection): int;		isset:		fn(sel: self ref Selection, index: int): int;		transfer:	fn(sel: self ref Selection, dst: ref Spree->Object, index: int);		owner:	fn(sel: self ref Selection): ref Cmember;	}; 	selection:	fn(stack: ref Spree->Object): ref Selection; 	# pack and facing directions (clockwise by face direction)	dTOP, dLEFT, dBOTTOM, dRIGHT: con iota;	dMASK: con 7;	dSHIFT: con 0;		# anchor positions	aSHIFT: con 4;	aMASK: con 16rf0;	aCENTRE, aUPPERCENTRE, aUPPERLEFT, aCENTRELEFT,		aLOWERLEFT, aLOWERCENTRE, aLOWERRIGHT,		aCENTRERIGHT, aUPPERRIGHT: con iota << aSHIFT;		# orientations	oMASK: con 16rf00;	oSHIFT: con 8;	oRIGHT, oUP, oLEFT, oDOWN: con iota << oSHIFT; 	EXPAND: con 16r1000; 	FILLSHIFT: con 13;	FILLX, FILLY: con 1 << (FILLSHIFT + iota);	FILLMASK: con FILLX|FILLY; 	CLUBS, DIAMONDS, HEARTS, SPADES: con iota; 	init:			fn(spree: Spree, clique: ref Spree->Clique); 	addlayframe:	fn(name: string, parent: string, layout: ref Layout, packopts: int, facing: int);	addlayobj:	fn(name: string, parent: string, layout: ref Layout, packopts: int, obj: ref Spree->Object);	dellay:		fn(name: string, layout: ref Layout); 	newstack:		fn(parent: ref Spree->Object, p: ref Spree->Member, spec: Stackspec): ref Spree->Object; 	archive:		fn(): ref Spree->Object;	unarchive:	fn(): ref Spree->Object;	setarchivename: fn(o: ref Spree->Object, name: string);	getarchiveobj:	fn(name: string): ref Spree->Object;	archivearray:	fn(a: array of ref Spree->Object, name: string);	getarchivearray: fn(name: string): array of ref Spree->Object; 	newlayout:	fn(parent: ref Spree->Object, vis: Sets->Set): ref Layout;	makecards:	fn(stack: ref Spree->Object, r: Range, rear: string);	maketable:	fn(parent: string);	deal:			fn(stack: ref Spree->Object, n: int, stacks: array of ref Spree->Object, first: int);	shuffle:		fn(stack: ref Spree->Object);	sort:			fn(stack: ref Spree->Object, rank, suitrank: array of int); 	getcard:		fn(card: ref Spree->Object): Card;	getcards:		fn(stack: ref Spree->Object): array of Card;	discard:		fn(stk, pile: ref Spree->Object, facedown: int);	setface:		fn(card: ref Spree->Object, face: int); 	flip:			fn(stack: ref Spree->Object); 	nmembers:		fn(): int;};

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t