Now I want to bring people's attention to something, which starts with the way public opinion shifts each month.
//PUBLIC OPINION NATURAL MOVES
for(v=0;v<VIEWNUM;v++)
{
// Liberal essays add their power to the effect of sleepers
libpower[v]+=background_liberal_influence[v];
background_liberal_influence[v]=static_cast<short>(background_liberal_influence[v]*0.66);
if(v==VIEW_LIBERALCRIMESQUADPOS)continue;
if(v==VIEW_LIBERALCRIMESQUAD)continue;
//if(v==VIEW_POLITICALVIOLENCE)
//{
// change_public_opinion(VIEW_POLITICALVIOLENCE,-1,0);
// continue;
//}
if(v==VIEW_CONSERVATIVECRIMESQUAD)continue;
if(v!=VIEW_AMRADIO&&v!=VIEW_CABLENEWS)
{
issuebalance[v] = libpower[v] - conspower;
mediabalance += issuebalance[v];
// Heavy randomization -- balance of power just biases the roll
int roll = issuebalance[v] + LCSrandom(400)-200;
// If +/-50 to either side, that side wins the tug-of-war
if(roll < -50)
{
change_public_opinion(v,-1,0);
}
else if(roll > 50)
{
change_public_opinion(v,1,0);
}
else // Else random movement
{
change_public_opinion(v,LCSrandom(2)*2-1,0);
}
}
// AM Radio and Cable News popularity slowly shift to reflect public
// opinion over time -- if left unchecked, their subtle influence
// on society will become a self-perpetuating Conservative nightmare!
else if(v==VIEW_AMRADIO||v==VIEW_CABLENEWS)
{
if((int)publicmood(-1)<attitude[v])change_public_opinion(v,-1);
else change_public_opinion(v,1);
}
}
the only purpose of libpower[v] is to bias the random roll, something that the Final Five(tm) issues don't do. And since background_liberal_influence[v]'s only
purpose is to boost libpower[v], anything that adds those things to those issues is a pointless thing.
This brings me to news.cpp, where liberals write letters to the editor and guardian essays, the effects of which are applied to "background_liberal_influence[randomissue()]". As randomissue() includes the Final Five(tm) issues, you'll be writing articles that have absolutely no effect at least some of the time.
This would be fixed by changing it to background_liberal_influence[randomissue(true)].
On that note, the same thing happens with random sleeper liberals advocating liberalism:
default: // Affect a random issue
libpower[LCSrandom(VIEWNUM)]+=power;
That last line really should be libpower[LCSrandom(VIEWNUM-5)]+=power;.
It furthermore means that this part from monthly.cpp just above the public opinion natural moves part quoted at the top of this post:
if(align==1)
{
background_liberal_influence[VIEW_LIBERALCRIMESQUAD]+=power;
background_liberal_influence[VIEW_CONSERVATIVECRIMESQUAD]+=power;
}
else if(align==-1)
{
background_liberal_influence[VIEW_LIBERALCRIMESQUAD]-=power;
background_liberal_influence[VIEW_CONSERVATIVECRIMESQUAD]-=power;
}
ultimately does nothing and might as well be deleted; and that the part from sleeping liberalizing news anchor/radio personality where they go from 0 to VIEWNUM-3 should be VIEWNUM-5.