Skip to content

Commit 57e1674

Browse files
committedFeb 25, 2025
Tons of Rhost fixes.
1 parent e247c07 commit 57e1674

6 files changed

+93
-23
lines changed
 

‎CHANGELOG.md

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
# CHANGELOG
22

3+
## Version 3.6
4+
5+
36
## Version 3.5
47
* (Experimental) Rhost support is in! There's probably a plethora of bugs, but much of the code is working. I'm still hammering out the kinks but feel welcome to try it.
58

‎MIGRATION-3.5-3.6.md

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
# NOTE: Do not do this while people are playing.
2+
# AND MAKE A BACKUP FIRST!
3+
4+
# Step 1
5+
6+
The following SQL script should be run to update the schema and migrate data.
7+
8+
```sql
9+
BEGIN TRANSACTION;
10+
11+
CREATE TABLE IF NOT EXISTS vol_actrole (
12+
actrole_id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
13+
actor_id INT UNSIGNED NOT NULL,
14+
actrole_name VARCHAR(255) NOT NULL,
15+
UNIQUE(actor_id,actrole_name),
16+
FOREIGN KEY (actor_id) REFERENCES vol_actor(actor_id) ON UPDATE CASCADE ON DELETE CASCADE
17+
) ENGINE=InnoDB;
18+
19+
INSERT INTO vol_actrole (actor_id,actrole_name) SELECT actor_id,character_name FROM volv_actor;
20+
21+
ALTER TABLE vol_action ADD COLUMN actrole_id INT UNSIGNED NULL;
22+
23+
UPDATE vol_action AS a JOIN vol_actrole AS r ON a.actor_id = r.actor_id SET a.actrole_id = r.actrole_id;
24+
25+
ALTER TABLE vol_action DROP FOREIGN KEY vol_action_ibfk_1;
26+
ALTER TABLE vol_action DROP COLUMN actor_id;
27+
ALTER TABLE vol_action DROP COLUMN action_type;
28+
ALTER TABLE vol_action MODIFY actrole_id INT UNSIGNED NOT NULL;
29+
30+
ALTER TABLE vol_action ADD CONSTRAINT fk_vol_action_actrole FOREIGN KEY (actrole_id) REFERENCES vol_actrole(actrole_id) ON UPDATE CASCADE ON DELETE CASCADE;
31+
32+
COMMIT;
33+
```
34+
35+
Then re-run the contents of `schema.sql` to rebuild views and stored procedures.
36+
37+
# Step 2
38+
Re-install the `Scene System - SCENE.txt` file and type `@restart [u(cobj,scene)]` to reload the scene system.

‎Penn/CORE 01 - Core Code Parent - CCP.txt

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ think if(isdbref(u(cobj,ccp)),,setq(0,create(Core Code Parent <CCP>))[tel(%q0,co
1313
&IS_ANCESTOR [u(cobj,ccp)]=cand(hasattr(u(cobj,ccp),COBJ`ANCESTOR_PLAYER),strmatch(num(%0),num(u(cobj,ancestor_player))))
1414

1515
&ATTRIB_SET [u(cobj,ccp)]=if(u(IS_ANCESTOR,%0),,attrib_set(%0/%1,%2))
16-
&VATTRIB_SET [u(cobj,ccp)]=u(attrib_set,%0,%1,%2)[set(%0/%1,visual)]
16+
&VATTRIB_SET [u(cobj,ccp)]=u(attrib_set,%0,%1,%2)[iter(lnum(1,words(%1,`)),set(%0/[elements(%1,lnum(1,%i0),`,`)],visual))]
17+
1718

1819
&LATTR [u(cobj,ccp)]=lattr(%0,%1)
1920
&LATTRP [u(cobj,ccp)]=lattrp(%0,%1)
@@ -321,7 +322,7 @@ think if(isdbref(u(cobj,ccp)),,setq(0,create(Core Code Parent <CCP>))[tel(%q0,co
321322

322323
@@ SQL WRAPPER
323324

324-
&RENDER [u(cobj,ccp)]=render(%0,ansi)
325+
&RENDER [u(cobj,ccp)]=render(%0,ansi html)
325326

326327
&RSEP [u(cobj,ccp)]=chr(176)
327328
&FSEP [u(cobj,ccp)]=chr(177)

‎Schema.sql

+16-6
Original file line numberDiff line numberDiff line change
@@ -1107,6 +1107,14 @@ CREATE OR REPLACE VIEW volv_scene AS
11071107
FROM vol_scene AS s LEFT JOIN volv_actor AS a ON s.scene_id=a.scene_id AND a.actor_type=2
11081108
ORDER BY s.scene_id;
11091109

1110+
CREATE TABLE IF NOT EXISTS vol_actrole (
1111+
actrole_id INT AUTO_INCREMENT PRIMARY KEY,
1112+
actor_id INT NOT NULL,
1113+
actrole_name VARCHAR(255) NOT NULL,
1114+
UNIQUE(actor_id,actrole_name),
1115+
FOREIGN KEY (actor_id) REFERENCES vol_actor(actor_id) ON UPDATE CASCADE ON DELETE CASCADE
1116+
) ENGINE=InnoDB;
1117+
11101118
CREATE TABLE IF NOT EXISTS vol_action_source (
11111119
source_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
11121120
scene_id INT UNSIGNED NOT NULL,
@@ -1119,24 +1127,26 @@ CREATE TABLE IF NOT EXISTS vol_action_source (
11191127
UNIQUE(scene_id, source_objid, source_name, source_vr, source_type)
11201128
) ENGINE=InnoDB;
11211129

1130+
CREATE OR REPLACE VIEW volv_actrole AS
1131+
SELECT a.actrole_id,a.actrole_name,c.* FROM vol_actrole AS a LEFT JOIN volv_actor AS c ON c.actor_id=a.actor_id;
1132+
11221133
CREATE TABLE IF NOT EXISTS vol_action (
11231134
action_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
1124-
actor_id INT UNSIGNED NOT NULL,
1135+
actrole_id INT UNSIGNED NOT NULL,
11251136
source_id INT UNSIGNED NOT NULL,
11261137
action_is_deleted BOOL NOT NULL DEFAULT FALSE,
1127-
action_type TINYINT UNSIGNED DEFAULT 0,
11281138
action_date_created DATETIME NOT NULL,
11291139
action_text TEXT NOT NULL,
11301140
action_text_render TEXT NULL,
11311141
PRIMARY KEY(action_id),
1132-
INDEX(actor_id, action_is_deleted),
1133-
FOREIGN KEY(actor_id) REFERENCES vol_actor(actor_id) ON UPDATE CASCADE ON DELETE CASCADE,
1142+
INDEX(actrole_id, action_is_deleted),
1143+
FOREIGN KEY(actrole_id) REFERENCES vol_actor(actor_id) ON UPDATE CASCADE ON DELETE CASCADE,
11341144
FOREIGN KEY(source_id) REFERENCES vol_action_source(source_id) ON UPDATE CASCADE ON DELETE CASCADE
11351145
) ENGINE=InnoDB;
11361146

11371147
CREATE OR REPLACE VIEW volv_action AS
1138-
SELECT a.action_id,ac.actor_id,ac.scene_id,ac.character_id,ac.character_name,ac.character_objid,ac.actor_type,a.source_id,sc.source_objid,sc.source_vr,sc.source_name,sc.source_type,a.action_type,a.action_date_created,UNIX_TIMESTAMP(a.action_date_created) AS action_date_created_secs,a.action_is_deleted,a.action_text,a.action_text_render
1139-
FROM vol_action AS a LEFT JOIN volv_actor AS ac ON a.actor_id=ac.actor_id LEFT JOIN vol_action_source AS sc ON a.source_id=sc.source_id
1148+
SELECT a.action_id,ac.actor_id,ac.actrole_id,ac.actrole_name,ac.scene_id,ac.character_id,ac.character_name,ac.character_objid,ac.actor_type,a.source_id,sc.source_objid,sc.source_vr,sc.source_name,sc.source_type,a.action_date_created,UNIX_TIMESTAMP(a.action_date_created) AS action_date_created_secs,a.action_is_deleted,a.action_text,a.action_text_render
1149+
FROM vol_action AS a LEFT JOIN volv_actrole AS ac ON a.actrole_id=ac.actrole_id LEFT JOIN vol_action_source AS sc ON a.source_id=sc.source_id
11401150
ORDER BY ac.scene_id,a.action_date_created;
11411151

11421152
CREATE OR REPLACE VIEW volv_action_agg AS

0 commit comments

Comments
 (0)