Skip to content

Commit f4af0d3

Browse files
authored
Merge pull request #23 from cse-sim/DuctAutosize
Added tdvElecHrRank; ductAutoSize progress
2 parents 5370f55 + 8635276 commit f4af0d3

21 files changed

+660
-539
lines changed

src/ANCREC.CPP

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ record::record( BP _b, TI i, SI noZ/*=0*/) // construct record i of basAnc b,
9393
b->n++ : additional record in static array.
9494
CAUTION can be called from statSetup (til eliminated). */
9595

96-
_b->validate("record::record"); // abort if base bad -- we depend on it for size
97-
if (!noZ) // can be suppressed for data-init (static) records
96+
_b->validate("record::record"); // abort if base bad -- we depend on it for size
97+
if (!noZ) // can be suppressed for data-init (static) records
9898
memset( (char *)this+SZVFTP, 0, _b->eSz-SZVFTP); /* zero all members of DERIVED CLASS record
9999
except virtFcnTblPtr in 1st 2 or 4 bytes (ancrec.h define) */
100100
b = _b;
@@ -685,9 +685,9 @@ SI FC basAnc::ancNext( USI &an, BP * _b) // (registered) record anchor iterator
685685
//---------------------------------------------------------------------------------------------------------------------------
686686
RC basAnc::validate( // validate an anchor: check self-consistency of anchor and its entry 0
687687

688-
char *fcnName, // calling fcn name, for err msgs.
689-
int erOp /*=ABT*/, // reporting control. ABT-->PABT, WRN-->PWRN here.
690-
SI noStat /*=0*/ ) // 0: caller's action OK on static-storage anchor. nz: not ok.
688+
const char* fcnName, // calling fcn name, for err msgs.
689+
int erOp /*=ABT*/, // reporting control. ABT-->PABT, WRN-->PWRN here.
690+
SI noStat /*=0*/ ) // 0: caller's action OK on static-storage anchor. nz: not ok.
691691

692692
// if error, issues message, returns non-RCOK if not ABT
693693
{

src/ANCREC.H

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ class basAnc // base class for record anchors: basAnc<recordName>
108108
static BP FC anc4n( USI an, int erOp=ABT); // access anchor by anchor #
109109
static RC FC findAnchorByNm( char *what, BP *b);
110110
static SI FC ancNext( USI &an, BP *_b); // iterate anchors
111-
RC validate( char *fcnName, int erOp=ABT, SI noStat=0); // check for valid anchor
111+
RC validate( const char* fcnName, int erOp=ABT, SI noStat=0); // check for valid anchor
112112
RC findRecByNm1( const char* _name, TI *_i, record **_r); // find record by 1st match on name
113113
RC findRecByNmU( const char* _name, TI *_i, record **_r); // find record by unique name match
114114
RC findRecByNmO( const char* _name, TI ownTi, TI *_i, record **_r); // find record by name and owner subscript

src/CGCOMP.CPP

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1638,6 +1638,12 @@ RSYS* DUCTSEG::ds_GetRSYS() const
16381638
return pRS;
16391639
} // DUCTSEG::ds_GetRSYS
16401640
//-----------------------------------------------------------------------------
1641+
bool DUCTSEG::ds_IsRound() const
1642+
{ // if ds_exArea is input, assume flat area-only model
1643+
// else round
1644+
return !IsSet( DUCTSEG_EXAREA);
1645+
} // DUCTSEG::ds_IsRound
1646+
//-----------------------------------------------------------------------------
16411647
RC DUCTSEG::ds_TopDS( // set up run record
16421648
const DUCTSEG* pDSi) // input record
16431649
// caller must allocate this (in DsR)
@@ -1646,10 +1652,7 @@ RC DUCTSEG::ds_TopDS( // set up run record
16461652

16471653
Copy( pDSi); // copy record, incl name, excl internal front overhead.
16481654

1649-
BOOL bRound = !IsSet( DUCTSEG_EXAREA); // if exterior area is specified
1650-
// assume flat config (no radius adj)
1651-
1652-
if (bRound)
1655+
if (ds_IsRound())
16531656
{ if (!IsSet( DUCTSEG_DIAM))
16541657
{ if (ds_len > 0.f)
16551658
ds_diam = ds_inArea / (kPi * ds_len);
@@ -1698,7 +1701,7 @@ RC DUCTSEG::ds_TopDS( // set up run record
16981701
ds_RconvIn = 0.4; // approx inside convection resistance, ft2-F/Btuh
16991702
// derived per HOF correlations per typical diam, temp, vel
17001703
if (rc == RCOK)
1701-
{ if (bRound)
1704+
{ if (ds_IsRound())
17021705
{ // round configuration
17031706
double diamOut = ds_diam + 2.*ds_insulThk;
17041707
double diamRat = diamOut / ds_diam; // ratio of outside to inside diameter
@@ -1744,6 +1747,35 @@ void DUCTSEG::ds_SetRunConstants() // set constants that do not vary during sim
17441747
ZNR* zpx = ds_GetExZone(); // zone outside duct (NULL if none)
17451748
ds_sbcO.sb_SetRunConstants( zpx);
17461749
} // DUCTSEG::ds_SetRunConstants
1750+
//----------------------------------------------------------------------------
1751+
#if 0
1752+
RC DUCTSEG::ds_SetSizeFromAVF( // adjust diameter based on flow
1753+
float avf) // design air volume flow, cfm
1754+
{
1755+
const RSYS* pRS = ds_GetRSYS();
1756+
1757+
// # of runs
1758+
int nR = pRS->rs_areaServed / ds_desAirVel;
1759+
1760+
float avfPerRun = avf / ds_nDuctRun;
1761+
1762+
float ductArea = avfPerRun / ds_airVelDs;
1763+
1764+
ds_diam = 2.f * sqrt( ductArea / kPi);
1765+
1766+
1767+
} // DUCTSEG::ds_SetSizeFromAVF
1768+
//-----------------------------------------------------------------------------
1769+
int DUCTSEG::ds_GetDuctRunInfo(
1770+
float& runLen) // average run length, ft
1771+
// returns # of runs
1772+
{
1773+
const RSYS* pRS = ds_GetRSYS();
1774+
1775+
// # of runs
1776+
int nR = max( 1, iRound( pRS->rs_areaServed / ds_CFAperRun));
1777+
} // DUCTSEG::ds_GetRunInfo
1778+
#endif
17471779
//-----------------------------------------------------------------------------
17481780
RC DUCTSEG::ds_BegHour()
17491781
{

src/CGWTHR.CPP

Lines changed: 117 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -54,24 +54,33 @@ void FC cgWthrClean( // cgwthr overall init/cleanup routine
5454
cgWfDone(); // close any open weather file
5555

5656
// init weather file info record
57-
Wfile.wf_Init(); // mbr function in wfpak.cpp sets record to say no file open
58-
Wthr.wd_Init(); // mbr function in wfpak.cpp clears record
59-
WthrNxHr.wd_Init(); // mbr function in wfpak.cpp clears record
57+
Wfile.wf_Init(); // sets record to say no file open
58+
Wthr.wd_Init(); // clears record
59+
WthrNxHr.wd_Init(); // clears record
6060

6161
// add any other init/cleanup found necessary or desirable
6262

6363
} // cgWthrClean
6464
//---------------------------------------------------------------------------
65-
RC TOPRAT::tp_WfInit() // Initialize weather file. Displays any error messages.
66-
// also uses: Top.tp_wfName [,.isDT]
65+
RC TOPRAT::tp_WthrInit() // Initialize weather data/ display any error messages.
66+
// also uses: tp_wfName, tp_TDVfName, [,.isDT]
6767
// returns non-RCOK if error, message already issued.
6868
{
6969
RC rc = Wfile.wf_Open( tp_wfName, tp_TDVfName); // open wthr file and option TDV file
7070
// init WFILE object, msg if error.
7171
if (!rc)
72-
rc = Wfile.wf_FillWDYEAR( WRN);
72+
rc = Wfile.wf_FillWDYEAR( WRN); // read/cache entire weather file
73+
// TODO: handle partial years
74+
75+
// design conditions
76+
// set any derived values
77+
// WHY here: location dependence, call after locinit
78+
DESCOND* pDC;
79+
RLUP( DcR, pDC)
80+
rc |= pDC->dc_RunInit();
81+
7382
return rc;
74-
} // TOPRAT::tp_WfInit
83+
} // TOPRAT::tp_WthrInit
7584
//---------------------------------------------------------------------------
7685
RC TOPRAT::tp_WthrBegHour() // start-hour weather stuff: read file, set up public Wthr and Top members.
7786
// tp_WthrBegSubhr must also be called, after this function.
@@ -345,7 +354,7 @@ RC WDHR::wd_WfReader( // read an hour's weather data and make adjustments
345354
int iHrST = Top.iHrST; // hour 0-23, standard time.
346355
int wfOp = WF_SAVESLRGEOM; // wf_Read(): do not overwrite solar geometry values
347356
if (Top.isDT)
348-
wfOp |= WF_DSTFIX; // wf_Read(): taDbPvPk during daylight savings
357+
wfOp |= WF_DSTFIX; // wf_Read(): handle day-transition values during DST
349358
RC rc = RCOK;
350359

351360
// modify iHrST and jDayST as needed
@@ -432,7 +441,7 @@ RC WDHR::wd_WfReader( // read an hour's weather data and make adjustments
432441
if (Top.tp_AuszWthrSource() == TOPRAT_COOLDSCOND)
433442
{ // DSCOND design day: overwrite/adjust weather file values with generated
434443
int iDC = Top.tp_coolDsCond[ Top.tp_dsDayI-1];
435-
const DESCOND& DC = DCiB[ iDC];
444+
const DESCOND& DC = DcR[ iDC];
436445
wd_FillFromDESCOND( DC, iHrST);
437446
}
438447
}
@@ -517,7 +526,7 @@ RC WDHR::wd_WfReader( // read an hour's weather data and make adjustments
517526
rc = pWF->wf_Read( jDayST, iHrST, this, WRN|wfOp); // Read hour's data from weather file
518527
if (Top.tp_AuszWthrSource() == TOPRAT_COOLDSCOND)
519528
{ int iDC = Top.tp_coolDsCond[ Top.tp_dsDayI-1];
520-
const DESCOND& DC = DCiB[ iDC];
529+
const DESCOND& DC = DcR[ iDC];
521530
DC.dc_GenerateTemps( iHrST, this);
522531
523532
}
@@ -611,11 +620,12 @@ void WDHR::wd_FillFromDESCOND( // overwrite/adjust hourly data for design condi
611620
wd_taDbAvg14 += dbAvgDiff / 14.f;
612621
wd_taDbAvg31 += dbAvgDiff / 31.f;
613622

614-
615623
wd_wndSpd = dc.dc_wndSpd;
616624
wd_wndDir = 0.f;
617625

618-
if (wd_sunup)
626+
// derive irradiance
627+
// note: tauB/tauD both 0 -> no solar
628+
if (wd_sunup && dc.dc_tauB > 0.f && dc.dc_tauD > 0.f)
619629
wd_glrad = slASHRAETauModel(
620630
kPiOver2 - wd_slAlt,
621631
dc.dc_tauB, dc.dc_tauD,
@@ -636,17 +646,107 @@ void WDHR::wd_FillFromDESCOND( // overwrite/adjust hourly data for design condi
636646
/////////////////////////////////////////////////////////////////////////////
637647
RC DESCOND::dc_CkF() // check after input
638648
{ RC rc = RCOK;
639-
if (dc_MCWB > dc_DB)
640-
rc |= oer( "dcMCWB (%g) must be <= dcDB (%g)", dc_MCWB, dc_DB);
641649
return rc;
642650
} // DESCOND::dc_CkF
643651
//-----------------------------------------------------------------------------
644-
DOY DESCOND::dc_GetDOY() const
652+
#if defined( _DEBUG)
653+
static void DCTauTest( int doy)
645654
{
646-
return dc_day;
655+
float ebnlist[] = { 150.f, 200.f, 250.f, 300.f, -1.f };
656+
float edflist[] = { 20.f, 30.f, 40.f };
657+
658+
DESCOND dc( &DcR, 1);
659+
dc.dc_doy = doy;
660+
strcpy( dc.name, "Test");
661+
662+
for (int ib=0; ebnlist[ ib]>=0.f; ib++)
663+
{ dc.dc_ebnSlrNoon = ebnlist[ ib];
664+
for (int id=0; edflist[ id]>=0.f; id++)
665+
{ dc.dc_edhSlrNoon = edflist[ id];
666+
dc.dc_CheckFixSolar( 0);
667+
}
668+
}
669+
} // DCTauTest
670+
#endif
671+
//------------------------------------------------------------------------------
672+
RC DESCOND::dc_RunInit() // init for run
673+
// call after all input-time expressions have been evaluated
674+
// call after locInit (re latitude dependency)
675+
{
676+
#if defined( _DEBUG)
677+
static int tested = 0;
678+
if (!tested)
679+
{ DCTauTest( dc_doy);
680+
tested++;
681+
}
682+
#endif
647683

648-
} // DESCOND::dc_GetDOY
684+
RC rc = RCOK;
685+
686+
if (dc_MCWB > dc_DB)
687+
rc |= oer( "dcMCWB (%g) must be <= dcDB (%g)", dc_MCWB, dc_DB);
649688

689+
// if any solar values given, check and cross-derive
690+
// else leave all 0 = no solar
691+
if (dc_tauB + dc_tauD + dc_ebnSlrNoon + dc_edhSlrNoon > 0.f)
692+
{ int nTau = IsSetCount( DESCOND_TAUB, DESCOND_TAUD, 0);
693+
int nE = IsSetCount( DESCOND_EBNSLRNOON, DESCOND_EDHSLRNOON, 0);
694+
if (nTau == 0)
695+
rc |= dc_CheckFixSolar( 0); // derive tauB / tauD
696+
else if (nE == 0)
697+
rc |= dc_CheckFixSolar( 1); // derive Ebn / Edh
698+
else
699+
rc |= oer( "must give either dcTauB/dcTauD and"
700+
" not dcEbnSlrNoon/dcEdhSlrNoon or vice-versa");
701+
}
702+
else
703+
oInfo( "no irradiance due to dcTauB/dcTauD/dcEbnSlrNoon/dcEdhSlrNoon all 0");
704+
705+
return rc;
706+
} // DESCOND::dc_RunInit
707+
//-----------------------------------------------------------------------------
708+
RC DESCOND::dc_CheckFixSolar(
709+
int options) // option bits
710+
// 0: derive tau from solar noon
711+
// 1: derive solar noon from tau
712+
{
713+
RC rc = RCOK;
714+
715+
// solar noon angles
716+
slday( dc_doy, SLTMSOLAR, 1);
717+
float sunAlt, sunAzm;
718+
slaltazm( 12.f, &sunAlt, &sunAzm);
719+
float sunZen = kPiOver2 - sunAlt;
720+
721+
if (options & 1)
722+
{ rc |= limitCheck( DESCOND_TAUB, .08, 1.)
723+
| limitCheck( DESCOND_TAUD, 1.2, 3.2);
724+
if (!rc)
725+
slASHRAETauModel( sunZen, dc_tauB, dc_tauD,
726+
dc_ebnSlrNoon, dc_edhSlrNoon);
727+
}
728+
else
729+
{ rc |= limitCheck( DESCOND_EBNSLRNOON, 0., 370.)
730+
| limitCheck( DESCOND_EDHSLRNOON, 0., 110.);
731+
if (!rc)
732+
{ bool ret = slASHRAETauModelInv( sunZen, dc_ebnSlrNoon, dc_edhSlrNoon,
733+
dc_tauB, dc_tauD);
734+
if (!ret)
735+
rc = oer( "failed to derive dcTauB and dcTauD."
736+
" Check dcEbnSlrNoon and dcEdhSlrNoon input values.");
737+
#if defined( _DEBUG)
738+
else
739+
{ float ebn, edh;
740+
float egl = slASHRAETauModel( sunZen, dc_tauB, dc_tauD, ebn, edh);
741+
if (frDiff( ebn, dc_ebnSlrNoon) > .01f
742+
|| frDiff( edh, dc_edhSlrNoon) > .01f)
743+
oWarn( "ebn/edh mismatch");
744+
}
745+
#endif
746+
}
747+
}
748+
return rc;
749+
} // DESCOND::dc_CheckFixSolar
650750
//-----------------------------------------------------------------------------
651751
void DESCOND::dc_GenerateTemps(
652752
int iHr, // hour of day (0 - 23)

src/CNAUSZ.CPP

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ const char* TOPRAT::tp_AuszDoing() const // current autosizing activity
105105
else
106106
{ int auszDoy;
107107
if (iAWS == TOPRAT_COOLDSCOND)
108-
auszDoy = DCiB[ tp_coolDsCond[ iDs]].dc_GetDOY();
108+
auszDoy = DcR[ tp_coolDsCond[ iDs]].dc_GetDOY();
109109
else if (iAWS == TOPRAT_COOLDSDAY)
110110
auszDoy = tp_coolDsDay[ iDs];
111111
if (auszDoy > 0)
@@ -232,7 +232,7 @@ x tp_dsDay = 1 + (tp_dsDayI != 0); // 1st desDay is heating (1), others coolin
232232
auszMon = tp_date.month;
233233
}
234234
else if (tp_AuszWthrSource() == TOPRAT_COOLDSCOND)
235-
{ const DESCOND* pDC = DCiB.GetAtSafe( tp_coolDsCond[ tp_dsDayI-1]);
235+
{ const DESCOND* pDC = DcR.GetAtSafe( tp_coolDsCond[ tp_dsDayI-1]);
236236
jDay = pDC->dc_GetDOY();
237237
tddyi( tp_date, jDay);
238238
auszMon = tp_date.month;

src/CNCULT.CPP

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ makAncRI2(XiB,"export"); // EXPORT input info
117117
makAncCOL(RcoliB); // REPORTCOL input info for UDT reports
118118
makAncCOL2(XcoliB,"exportCol"); // EXPORTCOL input info for UDT exports
119119
makAncIMPF(ImpfiB); // IMPORTFILE input info, 2-94
120-
// holidays
120+
121121
makAncHDAY(HdayiB); // HDAY input info
122122
makAncDESCOND(DCiB); // DESCOND input info
123123

@@ -1544,11 +1544,20 @@ RC DUCTSEG::ds_Ckf()
15441544
RC rc=RCOK;
15451545

15461546
if (IsSet( DUCTSEG_EXAREA))
1547-
{ rc |= disallow( DUCTSEG_INAREA, "when dsExArea is given");
1548-
ignoreN( "when dsExArea is given", DUCTSEG_DIAM, DUCTSEG_LEN, 0);
1547+
{ // flat configuration: area is fixed
1548+
rc |= disallow( DUCTSEG_INAREA, "when dsExArea is given");
1549+
ignoreN( "when dsExArea is given", DUCTSEG_DIAM, DUCTSEG_LEN,
1550+
DUCTSEG_BRANCHCOUNT, DUCTSEG_BRANCHLEN, DUCTSEG_BRANCHCFA, DUCTSEG_AIRVELDS, 0);
15491551
}
15501552
else
1551-
{ int dimCount = IsSet( DUCTSEG_DIAM) + IsSet( DUCTSEG_LEN) + IsSet( DUCTSEG_INAREA);
1553+
{ // round: many interdependent defaults
1554+
// # of branches: user-input branch count takes precedence
1555+
if (IsSet( DUCTSEG_BRANCHCOUNT))
1556+
ignore( DUCTSEG_BRANCHCFA, "when dsBranchCount is given");
1557+
if (IsSet( DUCTSEG_BRANCHLEN))
1558+
rc |= disallow( DUCTSEG_LEN, "when dsBranchLen is given");
1559+
1560+
int dimCount = IsSet( DUCTSEG_DIAM) + IsSet( DUCTSEG_LEN) + IsSet( DUCTSEG_INAREA);
15521561
if (dimCount == 3)
15531562
rc |= oer( "at most 2 of dsDiameter, dsLength, and dsInArea are allowed");
15541563
}
@@ -1595,10 +1604,14 @@ static CULT dsT[] = //------ DUCTSEG cmd RAT Entry table, used from RSys
15951604
CULT( "*", STAR, 0, 0, 0, 0, 0, 0, 0.f, N, &dsStarCkf),
15961605
CULT( "dsRSys", DAT, DUCTSEG_OWNTI, NO_INP|RDFLIN,0,0, TYREF, &RSiB, 0, N, N),
15971606
CULT( "dsTy", DAT, DUCTSEG_TY, RQD, 0, VEOI, TYCH, 0, -1, N, N),
1607+
CULT( "dsBranchLen", DAT, DUCTSEG_BRANCHLEN,0,0, VEOI, TYFL, 0, -1.f, N, N),
1608+
CULT( "dsBranchCount",DAT, DUCTSEG_BRANCHCOUNT,0,0,VEOI, TYSI, 0, -1, N, N),
1609+
CULT( "dsBranchCFA", DAT, DUCTSEG_BRANCHCFA,0,0, VEOI, TYFL, 0, -1, N, N),
1610+
CULT( "dsAirVelDs", DAT, DUCTSEG_AIRVELDS, 0,0, VEOI, TYFL, 0, -1.f, N, N),
15981611
CULT( "dsExArea", DAT, DUCTSEG_EXAREA,0, 0, VEOI, TYFL, 0, 0.f, N, N),
15991612
CULT( "dsInArea", DAT, DUCTSEG_INAREA,0, 0, VEOI, TYFL, 0, 0.f, N, N),
16001613
CULT( "dsDiameter", DAT, DUCTSEG_DIAM, 0, 0, VEOI, TYFL, 0, 0.f, N, N),
1601-
CULT( "dsLength", DAT, DUCTSEG_LEN, 0, 0, VEOI, TYFL, 0, 0.f, N, N),
1614+
CULT( "dsLength", DAT, DUCTSEG_LEN, 0, 0, VEOI, TYFL, 0, 0.f, N, N),
16021615
CULT( "dsExCnd", DAT, DUCTSEG_EXCND, 0, 0, 0, TYCH, 0, C_EXCNDCH_ADJZN, N, N),
16031616
CULT( "dsAdjZn", DAT, DSBC( ZI), 0, 0, VEOI, TYREF, &ZiB, 0.f, N, N),
16041617
CULT( "dsExT", DAT, DSBC( TXA), 0, 0, VSUBHRLY, TYFL, 0, 70.f, N, N),
@@ -2420,15 +2433,19 @@ static CULT dcT[] =
24202433
//---------- ----- --------------- ------- -- ------ ------ ---- ---------- ---- ----
24212434
CULT( "*", STAR, 0, 0, 0, 0, 0, 0, 0.f, N, dcStarCkf),
24222435

2423-
CULT( "dcDay", DAT, DESCOND_DAY, RQD, 0, VEOI, TYDOY, 0, 200, N, N),
2436+
CULT( "dcDay", DAT, DESCOND_DOY, RQD, 0, VEOI, TYDOY, 0, 200, N, N),
24242437

24252438
CULT( "dcDB", DAT, DESCOND_DB, RQD, 0, VEOI, TYFL, 0, 0.f, N, N),
24262439
CULT( "dcMCDBR", DAT, DESCOND_MCDBR, RQD, 0, VEOI, TYFL, 0, 0.f, N, N),
24272440
CULT( "dcMCWB", DAT, DESCOND_MCWB, RQD, 0, VEOI, TYFL, 0, 0.f, N, N),
24282441
CULT( "dcMCWBR", DAT, DESCOND_MCWBR, RQD, 0, VEOI, TYFL, 0, 0.f, N, N),
24292442
CULT( "dcWindSpeed",DAT, DESCOND_WNDSPD, RQD, 0, VEOI, TYFL, 0, 0.f, N, N),
2430-
CULT( "dcTauB", DAT, DESCOND_TAUB, RQD, 0, VEOI, TYFL, 0, 0.f, N, N),
2431-
CULT( "dcTauD", DAT, DESCOND_TAUD, RQD, 0, VEOI, TYFL, 0, 0.f, N, N),
2443+
// Taub/Taud and Ebn/Ebh interact, see dc_TopDC
2444+
CULT( "dcTauB", DAT, DESCOND_TAUB, 0, 0, VEOI, TYFL, 0, 0.f, N, N),
2445+
CULT( "dcTauD", DAT, DESCOND_TAUD, 0, 0, VEOI, TYFL, 0, 0.f, N, N),
2446+
CULT( "dcEbnSlrNoon",DAT, DESCOND_EBNSLRNOON,0, 0, VEOI, TYFL, 0, 0.f, N, N),
2447+
CULT( "dcEdhSlrNoon",DAT, DESCOND_EDHSLRNOON,0, 0, VEOI, TYFL, 0, 0.f, N, N),
2448+
24322449

24332450
CULT( "endDesCond", ENDER, 0, 0, 0, 0, 0, 0, 0.f, N, N),
24342451
CULT()

0 commit comments

Comments
 (0)